Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/10/2010, 08:59
Avatar de kovers
kovers
 
Fecha de Ingreso: junio-2008
Ubicación: Caracas
Mensajes: 37
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: select's dependientes

saludos amigos gracias por haber respondido, entiendo lo que me dicen el problema es que ya lo he intentado y no me funciona, les dejo parte de mi código a ver que me sugieren:

primera parte HTML:

Código PHP:
Ver original
  1. <?php session_start(); ?>
  2. <div id="Div_edo">
  3. <select name="estado" onChange="javascript:cargarCombo('../comun/lib/edo-mun-par/edomun.php', 'idestado', 'Div_edomun')">
  4.     <option value="n" selected> -- Seleccione un Estado -- </option>
  5. <?php
  6.  
  7.     $estados = array('Amazonas' => "1-Amazonas",
  8.              'Anzoátegui' => "2-Anzoátegui",
  9.              'Apure' => "3-Apure",
  10.              'Aragua' => "4-Aragua",
  11.              'Barinas' => "5-Barinas",
  12.              'Bolívar' => "6-Bolívar",
  13.              'Carabobo' => "7-Carabobo",
  14.              'Cojedes' => "8-Cojedes",
  15.              'Delta Amacuro' => "9-Delta Amacuro",
  16.              'Distrito Capital' => "10-Distrito Capital",
  17.              'Falcón' => "11-Falcón",
  18.              'Guárico' => "12-Guárico",
  19.              'Lara' => "13-Lara",
  20.              'Mérida' => "14-Mérida",
  21.              'Miranda' => "15-Miranda",
  22.              'Monagas' => "16-Monagas",
  23.              'Nueva Esparta' => "17-Nueva Esparta",
  24.              'Portuguesa' => "18-Portuguesa",
  25.              'Sucre' => "19-Sucre",
  26.              'Táchira' => "20-Táchira",
  27.              'Trujillo' => "21-Trujillo",
  28.              'Vargas' => "22-Vargas",
  29.              'Yaracuy' => "23-Yaracuy",
  30.              'Zulia' => "24-Zulia",
  31.             );
  32.            
  33.     foreach($estados as $indice => $valor)
  34.     {
  35.    
  36.     $aux = explode('-', $valor);
  37.         $option = "<option value='".$valor."'";
  38.             if($aux[0] == $_SESSION['estado'])
  39.                 $option.=" selected>".$indice."</option>";
  40.             else
  41.                 $option.=">".$indice."</option>";
  42.         echo $option;
  43.     }//fin foreach
  44.  
  45. ?>
  46. </select>
  47. </div>
  48.  
  49.  
  50. <br/>
  51.  
  52. <div id="Div_edomun">
  53. <select name="municipio" disabled="disabled" id="idmunicipio">
  54. <option value="n" selected> -- Seleccione un Municipio -- </option>
  55. </select>
  56. </div>
  57.  
  58.  
  59. <br/>
  60.  
  61. <div id="Div_edomunpar">
  62. <select name="parroquia" disabled="disabled" id="idparroquia">
  63. <option value="n" selected> -- Seleccione una Parroquia -- </option>
  64. </select>
  65. </div>

segunda parte AJAX:

Código Javascript:
Ver original
  1. // JavaScript Document
  2.  
  3. var peticion = false;
  4.  
  5. var  testPasado = false;
  6.  
  7. try {
  8.  
  9.   peticion = new XMLHttpRequest();
  10.  
  11.   } catch (trymicrosoft) {
  12.  
  13.   try {
  14.  
  15.   peticion = new ActiveXObject("Msxml2.XMLHTTP");
  16.  
  17.   } catch (othermicrosoft) {
  18.  
  19.   try {
  20.  
  21.   peticion = new ActiveXObject("Microsoft.XMLHTTP");
  22.  
  23.   } catch (failed) {
  24.  
  25.   peticion = false;
  26.  
  27.   }
  28.  
  29.   }
  30.  
  31. }
  32.  
  33. if (!peticion)
  34.  
  35. alert("ERROR AL INICIALIZAR!");
  36.  
  37.  
  38.  
  39. function cargarCombo (url, comboAnterior, element_id) {
  40.  
  41.  
  42.     //Obtenemos el contenido del div
  43.  
  44.     //donde se cargaran los resultados
  45.  
  46.  
  47.     var element =  document.getElementById(element_id);
  48.  
  49.  
  50.     //Obtenemos el valor seleccionado del combo anterior
  51.  
  52.  
  53.     var valordepende = document.getElementById(comboAnterior)
  54.  
  55.     var x = valordepende.value
  56.  
  57.     if(x != 'n')
  58.     {
  59.  
  60.  
  61.           //construimos la url definitiva
  62.  
  63.           //pasando como parametro el valor seleccionado
  64.  
  65.  
  66.           var fragment_url = url+'?Id='+x;
  67.  
  68.  
  69.         //abrimos la url
  70.           peticion.open("GET", fragment_url);
  71.  
  72.           peticion.onreadystatechange = function()
  73.           {
  74.  
  75.           if (peticion.readyState == 4)
  76.           {
  77.  
  78.           //escribimos la respuesta
  79.  
  80.    
  81.             peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; UTF-8'); 
  82.  
  83.             element.innerHTML = peticion.responseText;
  84.  
  85.    
  86.  
  87.           }
  88.  
  89.           }
  90.  
  91.         peticion.send(null);
  92.     }//fin condicion
  93.  
  94. } //fin cargarCombo

tercera parte modelo PHP:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include_once('../DBManejadorAdmin.php');
  4.     if($_REQUEST['Id'] != null )
  5.     {
  6.         $Id = $_REQUEST['Id'];
  7.         $aux = explode("-",$Id);
  8.         $IdEdo = $aux[0];
  9.     }
  10.        if(empty($_REQUEST))
  11.         {
  12.             $IdEdo = $_SESSION['estado'];      
  13.         }
  14.  
  15.     echo $IdEdo . '<br/>';
  16.        
  17.     $manejador = new DBManejadorAdmin();
  18.     if($manejador->conectar()==true)
  19.     {
  20.         $consulta = $manejador->consultarCondicion("id_municipio, nombre", "municipio", "id_estado =".$IdEdo);
  21.         $consultaMunicipios = $manejador->getFetch_array($consulta);
  22.     }
  23.  
  24.  
  25. ?>
  26.  
  27. <div id="Div_edomun">
  28.  
  29.     <select name="municipio" size="1"
  30.         onChange="javascript:cargarCombo('../comun/lib/edo-mun-par/edomunpar.php', 'idmunicipio', 'Div_edomunpar')" id="idmunicipio">
  31.           <option value="n" selected> -- Seleccione un Municipio -- </option>
  32. <?php
  33.  
  34.     if(!empty($consultaMunicipios))
  35.     {
  36.  
  37.         foreach($consultaMunicipios as $municipios)
  38.         {
  39.  
  40.             if( $municipios['id_municipio'] != null)
  41.             {
  42.                 $value = $municipios['id_municipio']."-".$municipios['nombre'];
  43.                 $option = "<option value='".$value."'";
  44.  
  45.                     if( $municipios['id_municipio'] == $_SESSION['municipio'] )
  46.                      $option.=" selected>".$municipios['nombre']."</option>";
  47.                     else
  48.                      $option.=">".$municipios['nombre']."</option>";
  49.                 echo $option;
  50.             }
  51.         }
  52.  
  53.     }
  54.     //while($municipio = mysql_fetch_array($consulta, MYSQL_ASSOC))
  55.     //    echo "<option value='".$municipio['id_municipio']."'>".$municipio['nombre']."</option>";
  56.     //      echo $municipio['id_municipio']."<br/>";
  57. ?>
  58.     </select>
  59. <?php
  60.  
  61.     if( $Id == "n" )
  62.     { ?>
  63.  
  64.     <select name="municipio" disabled="disabled" id="idmunicipio" OnLoad="javascript:deshabilitar()">
  65.       <option value="n" selected> -- Seleccione un Municipio -- </option>
  66.     </select>
  67.  
  68.     <script language="JavaScript">
  69.      deshabilitar();
  70.     </script>
  71.  
  72.  
  73. <?php } ?>
  74.  
  75. </div>

disculpen si molesto, agradezco su paciencia y colaboración.