Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/07/2012, 11:39
bartman742
 
Fecha de Ingreso: enero-2012
Mensajes: 64
Antigüedad: 12 años, 10 meses
Puntos: 0
varios select dependientes

hola, tengo el siguiente problema, en una pagina tengo un select que al conectarse a una base de datos despliega todos los estados, al seleccionar uno, un segundo select despliega los municipios, hasta aqui todo bien, mi duda es, como implemento un tercer select que despliegue un listado de compañias y que al seleccionar una de ellas un cuarto select despligue un listado de areas dependiendo de la empresa seleccionada? adjunto mis codigos por si alguien me puede ayudar diciendome que debo modificar, gracias


select_dependientes.php
Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <?
  3.     include "include/conexionifx.php";
  4. ?>
  5. <html lang="es">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  8. <title>AJAX, Ejemplos: Combos (select) dependientes, codigo fuente - ejemplo</title>
  9. <script type="text/javascript" src="select_dependientes.js"></script>
  10. </head>
  11. <body>
  12.     <div id="demo" style="width:600px;">
  13.         <div id="demoIzq">
  14.     <?
  15.     $Q4="select c13iestado,c13_desc from c13estados where c13_status='A';";
  16.     $resultadoQ4= ifx_prepare($Q4,$conecta,IFX_SCROLL);
  17.     ifx_do($resultadoQ4);
  18.     ?>
  19.     <select name='paises' id='paises' onChange='cargaContenido(this.id)'>
  20.     <option value='0'>Elige</option>
  21.     <?
  22.     while ($filaQ4=ifx_fetch_row($resultadoQ4,"NEXT"))
  23.     {
  24.     ?>
  25.         <option value=<? echo trim ($filaQ4[c13iestado])?> ><? echo $filaQ4[c13_desc] ?></option>
  26.     <?
  27.     }
  28.     ?>
  29.     </select>
  30.             </div>
  31.                 <div id="demoDer">
  32.                     <select disabled="disabled" name="estados" id="estados">
  33.                         <option value="0">Selecciona opci&oacute;n...</option>
  34.                     </select>
  35.                 </div>
  36.             </div>         
  37. </body>
  38. </html>


select_dependientes_proceso.php
Código PHP:
Ver original
  1. <?
  2. // Array que vincula los IDs de los selects declarados en el HTML con el nombre de la tabla donde se encuentra su contenido
  3. $listadoSelects=array(
  4. "paises"=>"lista_paises",
  5. "estados"=>"lista_estados"
  6. );
  7.  
  8. function validaSelect($selectDestino)
  9. {
  10.     // Se valida que el select enviado via GET exista
  11.     global $listadoSelects;
  12.     if(isset($listadoSelects[$selectDestino])) return true;
  13.     else return false;
  14. }
  15.  
  16. function validaOpcion($opcionSeleccionada)
  17. {
  18.     // Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico
  19.     if(is_numeric($opcionSeleccionada)) return true;
  20.     else return false;
  21. }
  22.  
  23. $selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"];
  24.  
  25. if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
  26. {
  27.     $tabla=$listadoSelects[$selectDestino];
  28.     include "include/conexionifx.php";
  29.    
  30.     $Q8="select c14idmun,c14_desc from c14delmun where c14_estado=$opcionSeleccionada";
  31.     $resultadoQ8= ifx_prepare($Q8,$conecta,IFX_SCROLL);
  32.     ifx_do($resultadoQ8);
  33.     // Comienzo a imprimir el select
  34.     echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
  35.     echo "<option value='0'>Elige</option>";
  36.     while ($filaQ8=ifx_fetch_row($resultadoQ8,"NEXT"))
  37.     {
  38.         // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
  39.         $filaQ8[c14_desc]=htmlentities($filaQ8[c14_desc]);
  40.         // Imprimo las opciones del select
  41.         echo "<option value='".$filaQ8[c14idmun]."'>".$filaQ8[c14_desc]."</option>";
  42.     }          
  43.     echo "</select>";
  44. }
  45. ?>