Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/02/2011, 07:46
vmoran2009
 
Fecha de Ingreso: febrero-2011
Mensajes: 43
Antigüedad: 13 años, 9 meses
Puntos: 0
ayuda con combos dependientes

tengo el siguiente codigo que he adaptado pero cuando intento llenar el segundo combo no funciona alguiente puede decirme que estoy haciendo mal para poder corregirlo gracias y daludos



<?php
//conexión a mysql
include ("conexion.php");

//seleccionamos las opciones del select principal
$sql = "SELECT idnivel,Nivel FROM niveles ORDER BY Nivel";
$res = mysql_query($sql);

//obtenemos el número de registros
$num = mysql_num_rows($res);
?>

<FORM name="form1" method="POST">

<!--Combo principal-->
<select name="pais" onChange="redirect(this.options.selectedIndex)"
style='width:160'>
<option selected value=0>Seleccione...</option>
<?
for($i=0;$i<$num;$i++) {
$id_pais[$i] = mysql_result($res,$i,0);
$pais[$i] = mysql_result($res,$i,1);
echo "<option value='$id_pais[$i]'>$pais[$i]</option>";
}
?>
</select>

<!--Combo dinámico-->
<select name="provincia" style='width:160'>
<option selected value=0>Seleccione...</option>
</select>

</FORM>

<?

echo "<script><!--";
echo "var groups=".$num;
echo "var group=new Array(groups)";

//Crea tantos arrays como valores hay en el combo principal
echo "for (i=0; i<groups; i++) group[i]=new Array()";

//Opciones cuando no se ha hecho ninguna selección en el combo principal-->
echo "group[0][0]=new Option('Nivel','0');";

for($i=0;$i<$num;$i++) {

$sql = "SELECT idtipo, tipo FROM tiposxniveles WHERE idnivel =
$id_pais[$i]";
$res = mysql_query($sql);
//Obtenemos el número de provincias para ese pais
$num2 = mysql_num_rows($res);

for($j=0;$j<$num2;$j++) {

$id_provincia = mysql_result($res,$j,0);
$provincia = mysql_result($res,$j,1);

//Opciones para la opción $i del combo principal
echo "group[$num][$j]=new Option('$provincia','$id_provincia')";

}
}
mysql_close();
?>

var temp=document.form1.provincia
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}
//-->
</script>