me ha surgido un problemon que no se solucionar, tiene que ver con php y javascript (selects dinamicos), este es el codigo:
Código PHP:
<b>Selecione la categoria y la subcategoria de la descarga:</b><br>
<?
#********************************************************************************
function categorias(){
$sql = "SELECT * FROM catdown ORDER BY id;";
$resultado = mysql_query($sql) or die("No se pudo conectar: error en la base de datos");
#se inicia el select
echo "<SELECT NAME='categoria' onchange='cambia_subcat()'>";
echo "<option value='0' selected>- Escoja una categoria -</option>n";
#aqui se llena el select
while($fila = mysql_fetch_array($resultado)){
echo "<option value=".$fila[id].">";
echo $fila['nombre']."</option>";
}#end while
echo "</SELECT>";
#termina el select
}
#*********************************************************************************
#uso de la funcion
categorias();
///////////////// Selects dinamicos
$result = mysql_query("SELECT id FROM catdown ORDER BY id");
while($row = mysql_fetch_array($result))
{
echo "<script> var subcats_".$row[id]." =new Array('- selecciona una subcategoria -'";
$result2 = mysql_query("SELECT * FROM subcatdown WHERE id_cat = '$row[id]' ORDER BY nombre");
while($row2 = mysql_fetch_array($result2))
{
echo ",'$row2[nombre]'";
}
echo ") </script> ";
}
// ESTA ES LA PARTE que me gustaria implementar pero no se como hacerlo
//while($row3 = mysql_fetch_array($result2)) {
//echo "<script> var valuesubcats_".$row3[id_cat]." =new Array(''";
//echo ",'$row3[id]'";
//echo >/script>
//}
?>
<script language="JavaScript" type="text/javascript">
function cambia_subcat(){
//tomo el valor del select del pais elegido
var categoria
categoria = document.formulario.categoria[document.formulario.categoria.selectedIndex].value
//miro a ver si el pais está definido
if (categoria != 0) {
//si estaba definido, entonces coloco las opciones de la provincia correspondiente.
//selecciono el array de provincia adecuado
mis_subcats=eval("subcats_" + categoria)
/////////////////////// ESTO TAMPOCO FUNCIONA
mis_valuesubcats=eval("valuesubcats_" + categoria)
///////////////////////
//calculo el numero de provincias
num_subcats = mis_subcats.length
//marco el número de provincias en el select
document.formulario.subcategoria.length = num_subcats
//para cada provincia del array, la introduzco en el select
for(i=0;i<num_subcats;i++){
document.formulario.subcategoria.options[i].value=mis_subcats[i]
document.formulario.subcategoria.options[i].text=mis_subcats[i]
}
}else{
//si no había provincia seleccionada, elimino las provincias del select
document.formulario.subcategoria.length = 1
//coloco un guión en la única opción que he dejado
document.formulario.subcategoria.options[0].value = "-"
document.formulario.subcategoria.options[0].text = "- seleccione una subcategoria -"
}
//marco como seleccionada la opción primera de provincia
document.formulario.subcategoria.options[0].selected = true
}
</script>
poner esto....
document.formulario.subcategoria.options[i].value=mis_valuesubcats[i]
pero no funciona como yo esperaba.
so que me gustaria es que en el segundo select, donde aparecen las subcategorias, que se imprimiese en cada valor (value) de las opciones el 'id' o numero que identifica a cada subcategoria en la base de datos, extraido oreviamente de la base de datos....
espero que sepais y que podais ayudarme.
Un saludo, y gracias de antemano.