• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

buscador JS + PHP me muestra todos los datos, sin filtrar.

Goalkeeper

Papito corazón!! paga la pensión!!
Registrado
2007/09/24
Mensajes
7.703
Sexo
Macho
Hola, que tal.
Tengo un problema que no he logrado solucionar por falta de conocimientos.

Implementé un buscador dinámico en PHP + JS para que mediante un cuadro de texto, al ingresar una palabra, automáticamente mientras tipeas se te despliegue en pantalla las coincidencias con la base de datos.

Todo va bien, la base de datos está OK, la interfaz del sitio web todo ok.

Pero sucede que una vez que realizas la primera busqueda, luego de cargar el sitio, al borrar el cuadro de texto para buscar una segunda palabra, el script me muestra toda la base datos.

Y necesito obviamente que cuando no exista texto en el cuadro de texto, obviamente no me busque nada y no despliegue nada.

El JS es este:
---------------------------------------------------------------------------------------------
function buscar(){
var pattern = document.getElementById('buscar').value;
var solicitud = new XMLHttpRequest();
var data = new FormData();
var url = 'buscar.php';
data.append("pattern", pattern);
solicitud.open('POST',url, true);
solicitud.send(data);
solicitud.addEventListener('load', function(e){
var cajadatos = document.getElementById('datos');
cajadatos.innerHTML = e.target.responseText;

}, false);
}
window.addEventListener('load', function(){
document.getElementById('buscar').addEventListener('input', buscar, false);
}, false);
--------------------------------------------------------------------------------------------------
.
Agradesco sus comentarios.
 
Si quieres implementar que no se busque si el campo está en blanco, debes limitar eso tanto en js como en buscar.php, en este caso, php está respondiendo cuando el dato está en blanco,lo que está mal.
Por otro lado, prueba cambiando el evento a "change" en el text input.
 
Si quieres implementar que no se busque si el campo está en blanco, debes limitar eso tanto en js como en buscar.php, en este caso, php está respondiendo cuando el dato está en blanco,lo que está mal.
Por otro lado, prueba cambiando el evento a "change" en el text input.

Gracias viejo, con lo que me dijiste se me iluminó la ampolleta, tenías razón, en el PHP estaba desplegando sin tomar en cuenta la variable.
se me agueono el navegar no me deja pegar texto.

La cosa es que le puse una sentencia EMPTY con al $POST(variable) y ahi dejó de mostrarme toda la DB cuando el campo esta vacío.
 
Gracias viejo, con lo que me dijiste se me iluminó la ampolleta, tenías razón, en el PHP estaba desplegando sin tomar en cuenta la variable.
se me agueono el navegar no me deja pegar texto.

La cosa es que le puse una sentencia EMPTY con al $POST(variable) y ahi dejó de mostrarme toda la DB cuando el campo esta vacío.
No te olvides de que también debes limitar eso en js: Si el valor del text input es igual a "", entonces no hacer la consulta a buscar.php.
Otra recomendación es que ocupes prepared statements para sql.
slds
 
Volver
Arriba