Ver Mensaje Individual
  #12 (permalink)  
Antiguo 08/08/2014, 20:41
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Combos dependientes.

Cita:
Iniciado por Karen_mBrK Ver Mensaje
Pero al hacerlo como sugieres, te comento (nuevamente) que no me respeta el filtrado ni la selección del primer select.
Si no seleccionas como te sugeri los 3 campos, no te va a funcionar.
Código PHP:
Ver original
  1. <?php
  2.     require_once('Connections/HD.php');
  3.     $categorias = mysql_query("select id_cat id_categoria, categoria descripcion from categorias");
  4.     $sub_categorias = mysql_query ("select id_cat id_categoria, id_sub id_sub_categoria, subcategoria descripcion from subcategorias");
  5. ?>
  6.     <form id="form1" name="form1" method="post">
  7.         <select name="categoria" id="categoria">
  8.             <option selected="selected">Seleccione una categoria</option>
  9.             <?php  
  10.                 while($categoria = mysql_fetch_array($categorias))
  11.                     echo "<option value=\"$categoria[id_categoria]\">$categoria[descripcion]</option>";
  12.             ?>
  13.         </select>
  14.         <select name="subcategoria" id="subcategoria">
  15.             <option selected="selected" data-categoria="0">Seleccione una sub-categoria</option>
  16.             <?php  
  17.                 while($sub_categoria = mysql_fetch_array($sub_categorias))
  18.                     echo "<option value=\"$sub_categoria[id_sub_categoria]\" data-categoria=\"$sub_categoria[id_categoria]\">$sub_categoria[descripcion]</option>";
  19.             ?>
  20.         </select>
  21.     </form>
  22.     <script>
  23.         function updateSubCategorias()
  24.         {
  25.             var s_categorias = document.querySelectorAll("#subcategoria option");
  26.             var categoria_actual = document.getElementById("categoria").value;
  27.            
  28.             for(var nro=0; nro < s_categorias.length; nro++)
  29.             {
  30.                 var categoria = s_categorias[nro].getAttribute("data-categoria");
  31.                 if(categoria == 0 || categoria == categoria_actual)
  32.                     s_categorias[nro].style.display = 'block';
  33.                 else
  34.                     s_categorias[nro].style.display = 'none';
  35.             }
  36.         }
  37.         document.getElementById("categoria").addEventListener("change", updateSubCategorias);  
  38.         updateSubCategorias();
  39.     </script>
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios