Foros del Web » Programando para Internet » Javascript »

Generar consulta o filtros dinámicos con ajax

Estas en el tema de Generar consulta o filtros dinámicos con ajax en el foro de Javascript en Foros del Web. Que tal amigos del foro, les agradezco su tiempo y la ayuda que siempre proporcionan. Les explico lo que tengo hecho y lo que quisiera ...
  #1 (permalink)  
Antiguo 20/08/2013, 18:54
 
Fecha de Ingreso: marzo-2012
Mensajes: 84
Antigüedad: 12 años, 1 mes
Puntos: 3
Generar consulta o filtros dinámicos con ajax

Que tal amigos del foro, les agradezco su tiempo y la ayuda que siempre proporcionan. Les explico lo que tengo hecho y lo que quisiera hacer:
en estos momentos generé un formulario en el cual tengo un textbox que se encarga de filtrar una tabla que jalo desde una base de datos mysql según la palabra que escriba, sin embargo si escribo por ejemplo "Plantas", me filtra la consulta sin problemas pero si quiero hacer otro filtro consecutivo como por ejemplo "Estípulas", me borra el primer filtro que hice y ahora sólo me toma el segundo filtro.
* Lo que quisiera hacer es que me dejara el primer filtro y ahora a su vez se sumara un segundo filtro y así sucesivamente, es decir, ir haciendo filtros sobre filtros.

index.php
Código HTML:
Ver original
  1. <form name="frmbusqueda" action="" >
  2.     <div align="center">Termino a buscar:
  3.     <input type="text" name="dato" onkeyup="buscarDato(); return false"/>
  4.     </div>
  5.     </form>
  6.     <fieldset><legend>Resultado</legend>
  7.     <div id="resultado"></div>
  8.     </fieldset>

busqueda.php
Código PHP:
<?php
   
include('conexion_mysql.php');
   
$busqueda=$_POST['busqueda'];
   if (
$busqueda<>''){
        
//numero de palabras
        
$trozos=explode(" ",$busqueda);
        
$numero=count($trozos);
        if (
$numero==1) {
                
$cadbusca="SELECT * FROM cat_estado_copy WHERE estado LIKE '%$busqueda%' OR estado_dsc LIKE '%$busqueda%';";
        } elseif (
$numero>1) {
                
$cadbusca="SELECT * , MATCH ( estado, estado_dsc ) AGAINST ( '$busqueda' ) FROM cat_estado_copy WHERE MATCH ( estado, estado_dsc ) AGAINST ( '$busqueda' );";
        }
   
        function 
limitarPalabras($cadena$longitud$elipsis "..."){
        
$palabras explode(' '$cadena);
        if (
count($palabras) > $longitud)
                return 
implode(' 'array_slice($palabras0$longitud)) . $elipsis;
        else
        return 
$cadena;
        }
?>
<table>
<tbody>
        <tr>
        <td class="titulo">Titulo</td>
        <td class="contenido">Contenido</td>
        <td class="autor">Autor</td>
        </tr>
<?php
        $result
=mysql_query($cadbusca$conexion);
        
$i=1;
        while (
$row mysql_fetch_array($result)){
           echo 
"
           <tr>
           <td class='titulo'>"
.$row[3]."</td>
           <td class='contenido'>"
.limitarPalabras($row[4],20)."</td>
           <td class='autor'>"
.$row[5]."</td>
           </tr>"
;
           
$i++;
        }
?>
</tbody>
</table>
<?php
        
//cierra el if inicial
        
}
?>&nbsp;
funciones.js
Código Javascript:
Ver original
  1. unction nuevoAjax(){
  2.         var xmlhttp=false;
  3.         try{
  4.                 xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.         }catch(e){
  6.                 try {
  7.                         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.                 }catch(E){
  9.                         xmlhttp = false;
  10.                 }
  11.         }
  12.        
  13.         if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.                 xmlhttp = new XMLHttpRequest();
  15.         }
  16.    
  17.         return xmlhttp;
  18. }
  19.  
  20. function buscarDato(){
  21.         resul = document.getElementById('resultado');
  22.         bus=document.frmbusqueda.dato.value;
  23.    
  24.         ajax=nuevoAjax();
  25.         ajax.open("POST", "busqueda.php",true);
  26.         ajax.onreadystatechange=function() {
  27.                 if (ajax.readyState==4) {
  28.                         resul.innerHTML = ajax.responseText
  29.                 }
  30.         }
  31.         ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  32.         ajax.send("busqueda="+bus)
  33. }
  #2 (permalink)  
Antiguo 20/08/2013, 19:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Generar consulta o filtros dinámicos con ajax

Hola:

No sé si entendí la pregunta, pero teniendo solo un control la consulta será sencilla... se me ocurre que se pueden guardar los filtros en variables de sesión del server, o duplicar los controles... con el método cloneNode(true) se clonan también los eventos... y para pasar los parámetros sin ajax los controles deben terminar con un juego de corchetes... y con ajax normal también.

Si clonas los controles, debes considerar que se deben acceder mediante un índice.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 21/08/2013, 16:26
 
Fecha de Ingreso: marzo-2012
Mensajes: 84
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Generar consulta o filtros dinámicos con ajax

Gracias Caricatos, probaré tus sugerencias.

Saludos

Etiquetas: ajax, filtros, mysql, php
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:28.