Foros del Web » Programando para Internet » PHP »

Combo box multi level llenado con mysql y php

Estas en el tema de Combo box multi level llenado con mysql y php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/07/2013, 07:12
 
Fecha de Ingreso: mayo-2009
Mensajes: 200
Antigüedad: 13 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
  #2 (permalink)  
Antiguo 21/07/2013, 23:03
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 12 años, 8 meses
Puntos: 214
Respuesta: Combo box multi level llenado con mysql y php

<saludos>
Sin scripts de tablas y data no es sano probar,
por esto mejor pregunto

¿Si se imprimen las consultas luego de el change
en el primer combo, y se toman estas consultas y se corren
directamente en la base de datos si filtra correctamente?

Que tal que sea asunto de data? Pues como comentas en el post
inicial, la carga si se realiza en el segundo combo

Revisa el tema, y suerte con eso!
</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

Etiquetas: box, combo, html, level, llenado, multi, mysql, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:49.