Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2013, 07:12
arcanisgk1
 
Fecha de Ingreso: mayo-2009
Mensajes: 200
Antigüedad: 15 años
Puntos: 7
Combo box multi level llenado con mysql y php

Hola amigos, he regresado con una dificultad la cual no he dado con la solucion.

esto pasa por estar adaptando un codigo.

la idea principal es la siguiente.

llenar un primer select option (Categoría) con una base de datos.
y dependiendo de la selección anterior generar otro select option (Subcategoria) adicional para escoger también.

Método utilizado:

mediante PHP (una funcion) lleno el primer select, luego mediante mediante una segunda función lleno el segundo.

PERO ojo utiliso jQuery Para cargar por ajax las subcategorias indicadas.

si alguien tiene una alternativa o puede ayudarme les agradeceria.

les dejo el codigo:

Codigo index
Código PHP:
Ver original
  1. <?php
  2. function categoria($valor){
  3.     $dblink=conexion();
  4.     $consulta = mysqli_query($dblink,"SELECT idTcategoria,tcatname FROM t_categoria ORDER BY idTcategoria ASC") or error($dblink);
  5.     while($row = mysqli_fetch_array($consulta)){
  6.         echo '<option value= "'.$row["idTcategoria"].'"';
  7.         if ($row["idTcategoria"]==$valor) echo ' selected';
  8.         echo '>'.$row["tcatname"].'</option>';
  9.     }
  10. }
  11.  
  12. function subcate($valor){
  13.     $dblink=conexion();
  14.     $consulta = mysqli_query($dblink,"SELECT idTsubcategoria,tsubcatname FROM t_subcategoria ORDER BY idTsubcategoria ASC") or error($dblink);
  15.     while($row = mysqli_fetch_array($consulta)){
  16.         echo '<option value= "'.$row["idTsubcategoria"].'"';
  17.         if ($row["idTsubcategoria"]==$valor) echo ' selected';
  18.         echo '>'.$row["tsubcatname"].'</option>';
  19.     }
  20. }
  21. <!doctype html>
  22. <html>
  23. <head>
  24. <meta charset="utf-8">
  25. <script src="setup/jquery.js"></script>
  26. <script src="setup/execute.js"></script>
  27. </head>
  28. <body>
  29.         <table width="400" border="0">
  30.             <tr>
  31.                 <td>Categoria</td>
  32.                 <td>
  33.                     <select id="cat" name="cat" required>
  34.                         <option value="">Escoja...</option>
  35.                         <?php categoria("1"); ?>
  36.                     </select>
  37.                 </td>
  38.             </tr>
  39.             <tr>
  40.                 <td>Sub-Categoria</td>
  41.                 <td>
  42.                     <select id="subcat" name="subcat" required>
  43.                         <option value="">Escoja...</option>
  44.                         <?php subcate("2"); ?>
  45.                     </select>
  46.                 </td>
  47.             </tr>
  48.         </table>

Execute.js

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.         /* COMBOBOX */
  3.         $("#cat").change(function(event)
  4.         {
  5.             var cat = $(this).find(':selected').val();
  6.             $("#psubcat").html("<img src='loading.gif' />");
  7.             $("#psubcat").load('buscar.php?buscar=subcat&cat='+cat);
  8.             var subcat = $("#subcat").find(':selected').val();
  9.         });
  10.     });

Buscar.php

Código PHP:
Ver original
  1. <?php
  2. $dblink=conexion();
  3.  
  4. if ($_GET[buscar]=="subcat")
  5. {
  6.    
  7.  
  8.     $consulta = mysqli_query($dblink,"SELECT idTsubcategoria,tsubcatname FROM t_subcategoria WHERE idTcategoria='".mysql_real_escape_string(intval($_GET["cat"]))."' ORDER BY idTsubcategoria ASC") or error($dblink);
  9.  
  10.    
  11.     // Comienzo a imprimir el select
  12.    
  13.     echo '<select id= "subcat" name="subcat" required>';
  14.     echo '<option value="">Escoja...</option>';
  15.    
  16.     while($row = mysqli_fetch_array($consulta)){
  17.         echo '<option value= "'.$row["idTsubcategoria"].'"';
  18.         if ($row["idTsubcategoria"]==$valor) echo ' selected';
  19.         echo '>'.$row["tsubcatname"].'</option>';
  20.     }
  21.     echo '</select>';
  22. }
  23. ?>


El problema:
me carga el primer combo box, bien
el segundo me carga pero me muestra todas los campos guardados en la tabla subcategoria. no esta funcionando el filtro por ajax y php


Gracias a todos por su cooperación.

Última edición por arcanisgk1; 21/07/2013 a las 07:19