Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/04/2008, 16:43
nemusa
 
Fecha de Ingreso: julio-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
Exclamación me ayudais otra vez? gracias

Hola de nuevo,

me ha surgido otro problemilla 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>
En vez de esto: document.formulario.subcategoria.options[i].value=mis_subcats[i]
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.