Ver Mensaje Individual
  #167 (permalink)  
Antiguo 20/11/2003, 06:41
Avatar de Kaopectate
Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años
Puntos: 38
169.- Combos encadenados para armar con Bases de datos

P: ¿Como puedo poner en mi página dos combos que dependiendo de la opción seleccionada en uno de ellos me cambie el contenido del otro combo, teniendo en cuenta de que todas las opciones provienen de una base de datos?

R:

Código PHP:
<html>
 <
head>
  <
script language="JavaScript">

   
/* Trae desde la base de datos los nombres de los paises */
   /* y colócalos en este arreglo.                          */
   
var aPaises = new Array(
                           
" ",
                           
"Mexico",
                           
"España",
                           
"Venezuela"
                          
);

   var 
aEstados0 = new Array(
                           
" "
                          
);

   
/* Trae desde la base de datos los nombres de las ciudades */
   /* de cada uno de los paises de la lista anterior y ponlos */
   /* en arreglos individuales.                               */
   
var aEstados1 = new Array(
                           
" ",
                           
"Ciudad de México",
                           
"Monterrey",
                           
"Guadalajara"
                          
);

   var 
aEstados2 = new Array(
                           
" ",
                           
"Madrid",
                           
"Barcelona",
                           
"San Sebastián"
                          
);

   var 
aEstados3 = new Array(
                           
" ",
                           
"Caracas",
                           
"Coro",
                           
"Maracay",
                           
"Valencia"
                          
);

   
/* Arma un arreglo general de estados a partir de los arreglos  */
   /* anteriores. Es importante que cada arreglo comience por un   */
   /* valor en blanco y que el primer arreglo de ciudades, llamado */
   /* aqui aEstados0, no contenga ningún elemento.                 */
   
var aEstados = new Array(
                          
aEstados0,
                          
aEstados1,
                          
aEstados2,
                          
aEstados3
                          
);

   function 
opcion(oCntrliPossTxtsVal){
     var 
selOpcion=new Option(sTxtsVal);
     eval(
oCntrl.options[iPos]=selOpcion);
   }

   function 
cambia(oMsteroCntrl){
    var 
nSelected oMster.selectedIndex;
    while (
oCntrl.lengthoCntrl.remove(0);
    for(var 
0aEstados[nSelected].lengthi++)
     
opcion(oCntrl,  iaEstados[nSelected][i], String(i));
   }

   function 
llena(oCntrl){
    while (
oCntrl.lengthoCntrl.remove(0);
    for(var 
0aPaises.lengthi++)
     
opcion(oCntrl,  iaPaises[i], String(i));
   }

  
</script>
 </head>
 <body>
  <form name="frm">
   Pais
   <select name="pais" onchange="cambia(this, document.frm.ciudad)">
    <option value=" ">&nbsp;</option>
   </select>
   &nbsp;&nbsp;&nbsp;
   Ciudad
   <select name="ciudad">
    <option value=" ">&nbsp;</option>
   </select>
  </form>
  <script language="JavaScript">
   llena(document.frm.pais);
  </script>
 </body>
</html> 

Última edición por Kaopectate; 20/11/2003 a las 06:44