Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema al enviar datos de un select a php

Estas en el tema de Problema al enviar datos de un select a php en el foro de PHP en Foros del Web. Hola de nuevo amigos de Foros del web. Me dirijo a vosotros en busca de una solucion a este quebradero de cabeza que tengo. Resulta ...
  #1 (permalink)  
Antiguo 31/08/2012, 14:15
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 11 años, 8 meses
Puntos: 2
Exclamación Problema al enviar datos de un select a php

Hola de nuevo amigos de Foros del web.

Me dirijo a vosotros en busca de una solucion a este quebradero de cabeza que tengo.

Resulta que estoy haciendo una web para un hotel, y en el panel del body tengo un formulario de comprobacion de disponibilidad en la que pido lo siguiente:



les pongo el codigo:

Código HTML:
<div class="panel">



<script type="text/javascript">
<!--
jQuery(document).ready(function() {

// calendarios
/* Inicialización en español para la extensión 'calendar' para jQuery. */
	popUpCal.regional['es'] = {clearText: 'Limpiar', closeText: 'Cerrar',
		prevText: '&lt;Ant', nextText: 'Sig&gt;', currentText: 'Hoy',
		dayNames: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
		monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
		'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre']};
	popUpCal.setDefaults(popUpCal.regional['es']);
	popUpCal.setDefaults({autoPopUp: 'both', buttonImageOnly: true,
	buttonImage: 'http://www.hotelsanroque.es/imagenes/tarifas-reservas/calendario.gif', buttonText: 'Calendar', showOtherMonths: true});
	$('.invokeBoth').calendar({ firstDay: 1 });
// fin calendarios});
});	
//-->

function checkDates()
{
	cortar();
	
	if (fechaentradanueva == fechasalidanueva )
		{
		alert("Las fechas son iguales. Debe de transcurrir al menos 1 día entre la fecha de entrada y la fecha de salida.  Por favor, elija otra fecha de salida o cambie la fecha de entrada.");
		
		 document.reserva.comprobar.disabled = true;
		}
	else
	{
		if ( fechaentradanueva > fechasalidanueva) 
		{
		alert("La fecha de salida tiene que ser más tarde que la fecha de entrada. Por favor, elija otra fecha de salida o cambie la fecha de entrada.");

		 document.reserva.comprobar.disabled = true;
		}
			else
			{
			 document.reserva.comprobar.disabled = false;
			}
	}
	
}



function cortar()
{
fechaentradacortada = document.getElementById("fechaentrada").value.split("/");
fechaentradanueva = fechaentradacortada[2] + fechaentradacortada[1] + fechaentradacortada[0];


fechasalidacortada = document.getElementById("fechasalida").value.split("/");
fechasalidanueva = fechasalidacortada[2] + fechasalidacortada[1] + fechasalidacortada[0];

}

function prueba()
{
alert (document.reserva.tiphab.value)
alert (document.reserva.nombre.value)
alert (document.reserva.apel.value)
alert (document.reserva.numpers.value)
alert (document.reserva.fechasalida.value)
alert (document.reserva.fechaentrada.value)	
}
</script>
<h3 align="center">Compruebe Disponibilidad</h3>
<form name="reserva" method="post" action="verificacion.php" onsubmit="prueba()">
<table class="pan">
	<tr>
    	<td class="name">Nombre:</td>
        <td class="input"><input type="text" name="nombre" /></td>
   </tr>
	<tr>
        <td class="name">Apellidos:</td>
        <td class="input"><input type="text" name="apel" /></td>
   </tr>
	<tr>
        <td class="name">Número de personas:</td>
        <td class="input"><input type="text" name="numpers" /></td>
   </tr>
	<tr>
        <td class="name">Tipo de habitación:</td>
        <td class="input"><Select name="tiphab" id="tiphab">
        <OPTION value="individual">Individual</OPTION>
		<OPTION VALUE="doble">Doble</OPTION>
		<OPTION VALUE="matrimonio">Matrimonio</OPTION>
		<OPTION VALUE="triple">Triple</OPTION>
		<OPTION VALUE="suite">Suite</OPTION>
        </Select></td>
   </tr>
	<tr>
        <td class="name">Fecha Entrada:</td>
        <td class="input"><input type="text" class="invokeBoth" name="fechaentrada" id="fechaentrada" value="<?=date("d/m/Y");?>" onChange="checkDates();" /></td>
   </tr>
	<tr>
        <td class="name">Fecha Salida:</td>
        <td class="input"><input type="text" class="invokeBoth" name="fechasalida" id="fechasalida" value="<?=strftime("%d/%m/%Y", (time() + 24*60*60));?>" onChange="checkDates();" /></td>
   </tr>
   <tr>
   <td></br></br></br></td> 
   <td class="input"> <input type="submit" name="comprobar" id="comprobar" /></td>
   </tr>
</table>
</form>
</br>
</br>
</br>
</br>
<div style="text-align:center;">
<font color="#FF0000" size="4">
<?=$_GET["error"];?>
</font>
</div>
</div> 
el problema es que al hacer el click en el submit manda todo el contenido del form a otra pagina en php para que haciendo una query a mi bbdd en mysql preguntar si hay habitaciones libres, si las hay me manda en la misma pagina que tiene habitaciones libres y si no me manda un mensaje al panel de que no hay habitaciones libres. El problema esq no manda bien el contenido del select al php. Os pongo el codigo y las imagenes:

Código PHP:
<?php
$conexion 
mysql_connect("db427201309.db.1and1.com""dbo427201309""joeloiane") or die ("No se pudo conectar: " mysql_error());
mysql_select_db("db427201309") or die ("No se pudo seleccionar la base de datos");


$name = (string) $_POST["nombre"];
$apel = (string) $_POST["apel"];
$numpers = (string) $_POST["numpers"];
$tiphab = (string) $_POST["tiphab"];
$fecent = (string) $_POST["fechaentrada"];
$fecsal = (string) $_POST["fechasalida"];




    
$checkroom mysql_query("SELECT * FROM Habitaciones WHERE hab_tipo='$tiphab' AND hab_res='No'");
    
$room_res mysql_num_rows($checkroom);
    if (
$room_res>0) {
         
header("Location:verificacion.php?exito=Hay habitaciones disponibles. Haga click en Reservar para acceder al formulario de reserva o haga click en Volver para volver a la página principal.");
           
         }else{

 
header("Location:index.php?error=Lo sentimos, no hay habitaciones de tipo "  .$tiphab" en las fechas seleccionadas. Cambie las fechas o el tipo de habitación para volver a ver disponibilidad.");
}

?>

<?php
include './includes/header.php';
?>

<div class="body"> 
<?=$_GET["exito"];?>  
<form name="chester" action="reserva.php" method="post">
<table>
<tr>
<td><input type="button" name="volver" id="volver" value="Volver" /></td>
<td><input type="submit" name="reservar" id="reservar" value="Reservar" /></td>
</tr>
</table>
</form>  
</div>


<?

include './includes/footer.php';
?>





Muchas gracias adelantadas por la ayuda que me puedan ofrecer. Es un poquito urgente :)
__________________
Bienvenidos a una nueva era.

Última edición por agami; 31/08/2012 a las 14:27
  #2 (permalink)  
Antiguo 31/08/2012, 18:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema al enviar datos de un select a php

El campo debe ser select no Select y las opciones option no OPTION; adicionalmente, puedes incluir un var_dump($_POST); para ver todo lo que estás recibiendo del formulario.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/09/2012, 03:45
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Problema al enviar datos de un select a php

Muchas gracias por tu respuesta.

He probado lo de las mayusculas y nada...

el var_dump no se muy bien como funciona, pero lo he puesto despues de recoger las variables, tal que así:

Código PHP:
$name = (string) $_POST["nombre"];
$apel = (string) $_POST["apel"];
$numpers = (string) $_POST["numpers"];
$tiphab = (string) $_POST["tiphab"];
$fecent = (string) $_POST["fechaentrada"];
$fecsal = (string) $_POST["fechasalida"];
var_dump($POST); 
Y me tira esto:

NULL

Warning: Cannot modify header information - headers already sent by (output started at /homepages/2/d423734471/htdocs/verificacion.php:12) in /homepages/2/d423734471/htdocs/verificacion.php on line 19

Lo segundo se que es xque no puedes escribir bla bla bla... Pero el null ese? no lo entiendo...Estoy usando mal var_dump?

Gracias adelantadas :)
__________________
Bienvenidos a una nueva era.
  #4 (permalink)  
Antiguo 01/09/2012, 04:00
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: Problema al enviar datos de un select a php

El var dump te da NULL por que está mal escrito. El warning es porque se ha mostrado texto en la pagina antes de hacer el location. Prueba así y nos cuentas
Código PHP:
Ver original
  1. $name = (string) $_POST["nombre"];
  2. $apel = (string) $_POST["apel"];
  3. $numpers = (string) $_POST["numpers"];
  4. $tiphab = (string) $_POST["tiphab"];
  5. $fecent = (string) $_POST["fechaentrada"];
  6. $fecsal = (string) $_POST["fechasalida"];
  7. var_dump($_POST);
  #5 (permalink)  
Antiguo 01/09/2012, 20:12
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: Problema al enviar datos de un select a php

Hola de nuevo compañeros!

Gracias por tu aportacion josss.

He probado como me has dicho y sale lo siguiente:

array(7) { ["nombre"]=> string(2) "hh" ["apel"]=> string(2) "hh" ["numpers"]=> string(1) "2" ["tiphab"]=> string(5) "doble" ["fechaentrada"]=> string(10) "02/09/2012" ["fechasalida"]=> string(10) "03/09/2012" ["comprobar"]=> string(6) "Enviar" }


Warning: Cannot modify header information - headers already sent by (output started at /homepages/2/d423734471/htdocs/verificacion.php:12) in /homepages/2/d423734471/htdocs/verificacion.php on line 19

Lo que quiere decir que no se pierde ninguna variable en el camino, lo que aumenta mi quebradero de cabeza, sigo sin saber el porque no me lo coge bien.

Agradezco cualquier aportacion.
__________________
Bienvenidos a una nueva era.
  #6 (permalink)  
Antiguo 03/09/2012, 15:59
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 11 años, 8 meses
Puntos: 2
Hola de nuevo! Se que esto del doble posteo no esta muy bien visto pero necesito una solucion por favor! No hago mas que probar cosas y nada me funciona... Por favor, alguna solucion...Tengo q poner la pagina online cuanto antes.

Muchas Gracias!
  #7 (permalink)  
Antiguo 04/09/2012, 03:26
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 11 años, 8 meses
Puntos: 2
Ya lo solucione compañeros! Se trataba de poner el php en una pagina y el formulario en otra! TEMA CERRADO!

Etiquetas: html, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:51.