Foros del Web » Programando para Internet » PHP »

Select dependientes

Estas en el tema de Select dependientes en el foro de PHP en Foros del Web. Hola tengo que hacer una pagina web para un concesionario y tengo dos selects dependientes que se cargan desde una base de datos. Uno de ...
  #1 (permalink)  
Antiguo 22/11/2008, 17:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Select dependientes

Hola tengo que hacer una pagina web para un concesionario y tengo dos selects dependientes que se cargan desde una base de datos. Uno de ellos es la marca de los coches y otro los modelos. Con el codigo que os pongo a continuacion uno de los combos, el de las marcas, se carga bien. El otro, por el contrario no. Al llamar a la funcion que recarga los selects, en el evento on change no recarga el sengundo. Necesito ayuda urgente.

Aqui os pongo el codigo

<table width="156" border="0" cellspacing="0" cellpadding="0"><form method="post" >
<script language="JavaScript">
function recarga(form)
{
form.action="";
form.submit();
}
function enviar(form){
form.action="/php/consulta.php";
form.submit();

}
</script>
<tr>
<td height="23" align="left" valign="middle" class="style9"><span class="style9">Seleccione Marca:</span></td>
</tr>
<tr>
<td align="left" valign="middle" class="style9">
<?
//Combo Box 1
mysql_connect("localhost","xxxxxx","xxxxx");
$sSQL="SELECT DISTINCT marca FROM coches";
$result=mysql_db_query("xxxxxxx",$sSQL);

echo '<select name="marca" onChange="javascript:recarga(this.form);">';
echo "<option>-- Seleccione la Marca--</option>";
while ($row=mysql_fetch_array($result))
{
if ($row['marca'] == $marca)
{ echo "<option value='".$row['marca']."' selected>".$row['marca']."</option>";
$marca2= $row['marca'];
}
else
{ echo "<option value='".$row['marca']."'>".$row['marca']."</option>";
}
}
echo "</select>";

echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td height='23' align='left' valign='middle' class='style9'>Seleccione modelo:</td>";
echo "</tr>";
echo "<tr>";
echo "<td align='left' valign='middle' class='style9'>";

//Combo Box 2
mysql_connect("localhost","xxxx","xxxx");
$sSQL="SELECT DISTINCT modelo FROM coches WHERE marca='$marca2'";
$result=mysql_db_query("xxxx",$sSQL);
echo '<select name="modelo" onChange="javascript:recarga(this.form);">';
echo "<option>-- Seleccione el Modelo--</option>";

while ($row=mysql_fetch_array($result))
{
if ($row['modelo'] == $modelo)
{ echo "<option value='".$row['modelo']."' selected>".$row['modelo']."</option>";
}
else
{ echo "<option value='".$row['modelo']."'>".$row['modelo']."</option>";
}
}
echo "</select>";

?>
</td>
</tr>
<tr>
<td height="23" align="left" valign="middle" class="style9">:</td>
</tr>
<tr>
<td align="center" valign="middle" class="style9"><input name="image" type="image" src="images/get.jpg" width="90" height="25" onClick="javascript:enviar(this.form);"></td>
</tr>
<tr>
<td height="46" align="center" valign="bottom" class="style9">&nbsp;</td>
</tr></form>
  #2 (permalink)  
Antiguo 22/11/2008, 20:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Select dependientes

Fíjate en tu consulta SQL para cargar el segundo <select>:
Código php:
Ver original
  1. $sSQL="SELECT DISTINCT modelo FROM coches WHERE marca='$marca2'";
¿De dónde salió ese marca2?. ¿No debería ser el valor seleccionado del primer <select>?. En ese caso debería ser $_POST['marca'] para obtener ese valor seleccionado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/11/2008, 16:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Sonrisa Respuesta: Select dependientes

Muchas gracias por tu ayuda era eso. Sin tu ayuda no hubiera visto lo que tan evidente era. Si por lo que sea necesitas algun día algo no dudes en enviarme un mensaje.
Muchas gracias
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 20:51.