Foros del Web » Programando para Internet » Javascript »

Cambiar 4 select dependiendo de ellos

Estas en el tema de Cambiar 4 select dependiendo de ellos en el foro de Javascript en Foros del Web. Hola foreros tengo una duda estoy haciendo un select que dependiendo de uno cambia al otro en javascript, pero solo me cambia de uno al ...
  #1 (permalink)  
Antiguo 10/04/2009, 11:51
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 21 años, 5 meses
Puntos: 4
Cambiar 4 select dependiendo de ellos

Hola foreros tengo una duda estoy haciendo un select que dependiendo de uno cambia al otro en javascript, pero solo me cambia de uno al otro y me interesaria 4

dependiendo de 1 al otro y despues dependiendo de ese otro y otro más hasta 4 que es el úsltimo

Dejo el script en javascript para que me ayuden hacer el script para 4 selects

Código PHP:
<html>
 <head>
  <title>
   FAQ-1: Selects
  </title>
<?
// ******** JAVASCRIPT *****
/*
    var select1 = formulario['aa4']; // formulario 1
      var select2 = formulario['aa5']; // formulario 2
*/ 
echo"
<script languaje=\"JavaScript\">
<!--
provincias = new Array();
provincias[0] = new Array();\n"
;
    
$R mysql_query("SELECT * FROM categorias ORDER BY categoria ASC",$conexion);
    while (
$RR mysql_fetch_array($R)){
    echo 
"provincias[".$RR[id]."] = new Array(";
        
$R1 mysql_query("SELECT * FROM subcategorias WHERE (categoria='$RR[id]') ORDER BY subcategoria ASC",$conexion);
        while (
$RR1 mysql_fetch_array($R1)){            
            
$ZZx++;
            if (
$ZZx == 1){echo"'$RR1[subcategoria]'";}else{echo",'$RR1[subcategoria]'";}
            
        }
        
mysql_free_result($R1);
        echo
");\n";$ZZx=0;
    }
    
mysql_free_result($R);
echo
"
function cambiar(formulario){
  var i = 0;
  var select1 = formulario['aa4'];
  var select2 = formulario['aa5'];
  var vector = provincias[select1.selectedIndex];
  if(vector.length)select2.length=vector.length;
  while(vector[i]){
    select2.options[i].value = vector[i];
    select2.options[i].text = vector[i];
    i++;
  }
  select2.options[0].selected = 1;
}
-->
</script>
"
;
// *************************
?>

 </head>
 <body>
  
<form method="POST">
                  <select name="aa4" style="width:250px;" <? echo $Xa4?> onchange=" cambiar(this.form) ">
                    <option value="">Seleccionar</option>
                    <?
                    $R 
mysql_query("SELECT * FROM categorias ORDER BY categoria ASC",$conexion);
                    while (
$RR mysql_fetch_array($R)){
                    if (
$_POST[aa4] == $RR[id]){$FH1="selected";}else{$FH1="";}
                    echo
"<option value=\"$RR[id]\" $FH1>$RR[categoria]</option>";
                    }
                    
mysql_free_result($R);
                    
?>
                </select>
 
 
                     <select name="aa5" style="width:250px;" <? echo $Xa5?>>
                    <? if ($_POST[aa5] == ""){
                        echo
"<option>--</option>";
                    }else{
                        
                    
$R2 mysql_query("SELECT * FROM subcategorias WHERE (categoria = '$_POST[aa4]')",$conexion);
                    while (
$RR2 mysql_fetch_array($R2)){
                    if (
$_POST[aa5] == $RR2[subcategoria]){$FH2="selected";}else{$FH2="";}
                    echo
"<option value=\"$RR2[subcategoria]\" $FH2>$RR2[subcategoria]</option>";
                    }
                    
mysql_free_result($R2);
                    } 
?>
                </select> </p>
</form>

 </body>
</html>
como podeis ver solo hay un select que varia dependiendo del otro pero necesito 2 más

1 SELECT (PRINCIPAL)
2 SELECT (VARIA SOBRE EL 1)
3 SELECT (VARIA SOBRE EL 2)
4 SELECT (VARIA SOBRE EL 3) FINAL

Gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:49.