El código que dejaste funciona a la perfección, excepto por un detallito:
En esta parte del código:
Código PHP:
...
<?
$query_s=mysql_query($sql_hija,$coneccion);
$indice=0;
$cat=0;
while($row=mysql_fetch_array($query_s)){
if($cat!=$row["id_padre"]){
$indice=0;
$cat=$row["id_padre"];
echo "var mimatriz".$cat."= new Array();\n";
}
echo "mimatriz".$cat."[".$indice."]=new valores('".$row["item_texto"]."','".$row["id"]."');\n";
}
?>
var i;
function incluir(array){
...
Hace falta aumentar $indice para cada ejecución del código dentro del while, así:
Código PHP:
...
<?
$query_s=mysql_query($sql_hija,$coneccion);
$indice=0;
$cat=0;
while($row=mysql_fetch_array($query_s)){
if($cat!=$row["id_padre"]){
$indice=0;
$cat=$row["id_padre"];
echo "var mimatriz".$cat."= new Array();\n";
}
echo "mimatriz".$cat."[".$indice."]=new valores('".$row["item_texto"]."','".$row["id"]."');\n";
$indice++;
}
?>
var i;
function incluir(array){
...
Y pues no sobra aclarar a los desprevenidos que el código se deja tal cual en el BODY, porque se llama cuando la página carga (se genera el listado de posibles opciones para la tabla hija), mientras que la función se llama cuando cambia el select de la tabla padre
Gracias, y saludos!