Hola de nuevo
okioki,
aqui hay un ejemplo:
http://www.tunait.com/tutoriales/lis...esphpmysql.php Cita: no me he atrevido con el ejemplo de Ajax,
porque no te has atrevido?
la web te quedara mucho mejor si cuando escoges un select no se recarga la pagina para cada cambio q haces...
aunque si quieres le exo un vistazo a tu codigo a ver q se puede hacer...
EDITADO: seria algo asi... no lo he probado por falta de tiempo... pero mas o menos para q cojas la idea quizas te sirva Código PHP:
<?
// datos de conexion a la BD.
$servidor ="localhost"; // host
$usuario ="root";
$clave ="";
$basedatos ="formularios"; // Indicar una Base de datos.
if (!empty($_POST['enviado'])){
// Procesar el formulario ...
echo "Procesando formulario:<br>";
echo "Recibido id_tabla_padre: ".$_POST['mota1']."<br>";
echo "Recibido id_tabla_hija: ".$_POST['mota2'];
} else {
// Conexión a la BD
$conexion = mysql_connect($servidor, $usuario, $clave) or die(mysql_error());
mysql_select_db($basedatos, $conexion) or die(mysql_error());
// Obtener el $id_padre del envio a si mismo del formulario ..
$mota1=$_POST['mota1'];
$mota2=$_POST['mota2'];
$mota3=$_POST['mota3'];
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<select name="mota1" onChange="this.form.submit()">
<option value=""> Seleccione un Item </option>
<?
$SQLconsulta_padre="select distinct mota1 from motak";
$consulta_padre = mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error());
while($registro_padre=mysql_fetch_assoc($consulta_padre)){
?>
<option value="<?=$registro_padre['mota1']?>" <? if ($mota1 == $registro_padre['mota1']){?>selected <? } ?>><?=$registro_padre['mota1']?></option>
<?
} //Cerramos wl WHILE
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.
?>
</select>
<!-- SEGUNDO SELECT -->
<select name="mota2" onChange="this.form.submit()">
<?
if (!empty($mota1)){
$SQLconsulta_hija="select distinct mota2 from motak where mota1='$mota1'";
$consulta_hija = mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_hija) != 0){
while($registro_hija=mysql_fetch_assoc($consulta_hija)){
?>
<option value="<?=$registro_hija['mota2']?>"<? if ($mota2 == $registro_hija['mota2']){ ?> selected <? } ?>><?=$registro_hija['mota2']?></option>
<? } //fin WHILE
} else {
?>
<option value=""> No hay registros para este Item </option>
<? }
} else {
?>
<option value="">--> Seleccione un Item </option>
<? }
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
?>
</select>
<!-- TERCER SELECT -->
<select name="mota3">
<?
if ((!empty($mota1)) && (!empty($mota2))){
$SQLconsulta_nieta="select distinct mota3 from motak3
where mota1='$mota1' AND mota2='$mota2'";
$consulta_nieta = mysql_query($SQLconsulta_nieta,$conexion) or die(mysql_error());
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_nieta) != 0){
while ($registro_nieta=mysql_fetch_assoc($consulta_nieta)){
?>
<option value="<?=$registro_nieta['mota3']?>" <? if ($mota3 == $registro_nieta['mota3']){ ?> selected <? } ?>><?=$registro_nieta['mota3']?></option>
<? }
} else {
?>
<option value=""> No hay registros para este Item </option>
<? }
} else {
?>
<option value=""> --> Seleccione un Item </option>
<? }
mysql_free_result($consulta_nieta); // Liberar memoria usada por consulta.
?>
</select>
<input type="submit" name="enviado" value=" Enviar " >
</form>
<?
}
?>
solo una cosa mas... te aconsejo para q no hagas trabajar excesivamente a tu servidor, q el codigo HTML no lo incrustes en PHP, es decir abre y cierra <??> para cada caxo de PHP q uses, y deja q el navegador el usuario se coma el HTML mientras tu servidor solo hace la parte de PHP...
Saludos