Ver Mensaje Individual
  #16 (permalink)  
Antiguo 17/10/2010, 03:46
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Llenar un select a partir de la opcion elegida en otro select

Hola
bueno, en ese caso, que partes puntuales no entiendes?


Código Javascript:
Ver original
  1. <script>
  2.   //Función inicial apenas el documento este disponible
  3.       $(document).ready(function(){
  4.   //Evento de cambio de valor en el select
  5.           $("select").change(function(){
  6.  
  7.               // Vector para saber cuál es el siguiente combo a llenar
  8.  
  9.               var combos = new Array();
  10.  
  11.               combos['publicacion'] = "edicion";
  12.  
  13.               //combos['estado'] = "ciudad";
  14.  
  15.               // Tomo el nombre del combo al que se le a dado el clic por ejemplo: país
  16.  
  17.               posicion = $(this).attr("name");
  18.  
  19.               // Tomo el valor de la opción seleccionada
  20.  
  21.               valor = $(this).val()      
  22.  
  23.               // Evaluó  que si es país y el valor es 0, vacié los combos de estado y ciudad
  24.  
  25.               if(posicion == 'publicacion' && valor==0){
  26.   //se asigna valores al combo
  27.                   $("#edicion").html('    <option value="0" selected="selected">----------------</option>')
  28.  
  29.                   //$("#ciudad").html('    <option value="0" selected="selected">----------------</option>')
  30.  
  31.               }else{
  32.  
  33.               /* En caso contrario agregado el letreo de cargando a el combo siguiente
  34.  
  35.               Ejemplo: Si seleccione país voy a tener que el siguiente según mi vector combos es: estado  por qué  combos [país] = estado
  36.  
  37.                   */
  38.  
  39.                   $("#"+combos[posicion]).html('<option selected="selected" value="0">Cargando...</option>')
  40.  
  41.                   /* Verificamos si el valor seleccionado es diferente de 0 y si el combo es diferente de ciudad, esto porque no tendría caso hacer la consulta a ciudad porque no existe un combo dependiente de este */
  42.  
  43.                   if(valor!="0" || posicion !='edicion'){
  44.  
  45.                   // Llamamos a pagina de combos.php donde ejecuto las consultas para llenar los combos
  46.  
  47.                       $.post("combo.php",{
  48.  
  49.                                           combo:$(this).attr("name"), // Nombre del combo
  50.  
  51.                                           id:$(this).val() // Valor seleccionado
  52.  
  53.                                           },function(data){
  54.   //se reciben datos de combo.php
  55.                                                           $("#"+combos[posicion]).html(data);    //Tomo el resultado de pagina e inserto los datos en el combo indicado                                                                              
  56.  
  57.                                                           })                                              
  58.  
  59.                   }
  60.  
  61.               }
  62.  
  63.           })      
  64.  
  65.       })
  66.  
  67.       </script>

Ahora el codigo de combo.php

Código PHP:
Ver original
  1. <?php
  2. //incluye conexión
  3.     include('modelo/conexion.php');
  4. //recive id seleccionado
  5.     $idcombo = $_POST["id"];
  6.     $obj= new Original();
  7. //Consulta a la bd
  8.     $Q=$obj->RecEd($idcombo);    
  9. //se imprimen tantos options como datos se tengan en la bd
  10.     while ( $row = oci_fetch_array($Q, OCI_RETURN_NULLS) )
  11.     {            
  12.         echo '<option value="'.$row[0].'">'.htmlentities($row[1]).'</option>';        
  13.     }
  14.     oci_free_statement($Q);    
  15. ?>

Agregue solo algunos comentarios pues el resto ya
tienes comentarios bastante explicativos

si tienes otra duda puntual, entonces dispara
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com