elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  No se ha recibido ningún dato (AJAX)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No se ha recibido ningún dato (AJAX)  (Leído 2,712 veces)
basickdagger


Desconectado Desconectado

Mensajes: 650


System.out.println("this is weird as fuck");


Ver Perfil
No se ha recibido ningún dato (AJAX)
« en: 8 Abril 2014, 20:28 pm »

tengo un input donde realizo busquedas en mi BD...
Código
  1. Búsqueda:<input id="search" type="Text" onkeyup="cargar_datos()" size="50">
  2.  
  3.  


llamo a mi función de ajax

Código
  1. function cargar_datos()()
  2. {
  3. var xmlhttp;
  4. var n=document.getElementById('search').value;
  5. if(n==''){
  6. document.getElementById("busqueda").innerHTML="";
  7. return;
  8. }
  9. if (window.XMLHttpRequest)
  10. {
  11. xmlhttp=new XMLHttpRequest();
  12. }
  13. else
  14. {
  15. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16. }
  17. xmlhttp.onreadystatechange=function()
  18. {
  19. if (xmlhttp.readyState==4 && xmlhttp.status==200)
  20. {
  21. document.getElementById("busqueda").innerHTML=xmlhttp.responseText;
  22. }
  23. }
  24. xmlhttp.open("POST","betr.php",true);
  25. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  26. xmlhttp.send("q="+n);
  27. }
  28.  

para realizar una consulta sencilla en mi archivo "betr.php"...(pongo solo una parte)

Código
  1. <?php
  2. $q=$_POST[q];
  3.  
  4. $sql="SELECT * from archivos where cliente LIKE '%".$q."%' or sub_cliente LIKE '%".$q."%' or archivo LIKE '%".$q."%' or documento LIKE '%".$q."%'";
  5.  
  6. $res=mysql_query($sql,$enlace);
  7.  
  8. if(mysql_num_rows($res)==0){
  9.  
  10. echo '<b>No hay sugerencias</b>';
  11.  
  12. }else{
  13.  
  14.   ?>
  15. <div class="resultados">
  16.   <table id="listado">      
  17.     <tr><th>Empresa</th><th>Cliente</th><th>Sub-Cliente</th><th>Fecha</th><th>Nombre del Archivo</th><th>Tipo de Documento</th><th>Archivo</th></tr>
  18. <?php
  19. while($row = mysql_fetch_array($res)){
  20. echo "<tr><td>".$row['empresa']."</td><td>".$row['cliente']."</td><td>".$row['sub_cliente']."</td><td>".$row['fecha']."</td><td>".$row['archivo']."</td><td>".$row['documento']."</td><td><a href='descarga.php?file=".$row['ruta']."'>Descargar Archivo</a></td></tr>";
  21. }
  22. ?>
  23.  
  24.  

bueno, todo esto me funciona y me muestra los resultados...pero si comienzo a jugar metiendo y quitando datos del input keyup, llega un momento en el que ya no reacciona el sitio,y si recargo la pagina me muestra el siguiente mensaje:

Citar
No se ha recibido ningún dato
y me da las opciones de cargar de nuevo, pero solo hasta despues de un rato (15-20 segundos) vuelve a funcionar y así sucede...

tengo aprox unos 40 registros pero no me parecen mucho...
donde podria estar mi problema alguna idea?

saludos


« Última modificación: 10 Abril 2014, 19:11 pm por basickdagger » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: No se ha recibido ningún dato (AJAX)
« Respuesta #1 en: 8 Abril 2014, 21:05 pm »

El problema es que literalmente estas haciendo una consulta por cada pulsación de teclado.

Saludos


En línea

basickdagger


Desconectado Desconectado

Mensajes: 650


System.out.println("this is weird as fuck");


Ver Perfil
Re: No se ha recibido ningún dato (AJAX)
« Respuesta #2 en: 9 Abril 2014, 17:44 pm »

El problema es que literalmente estas haciendo una consulta por cada pulsación de teclado.

Saludos
gracias por la respuesta, aunque bien, algo me había imaginado, pero de que manera pudiera hacerlo para que hiciera la búsqueda cada que ingreso un valor, alguna sugerencia para seguir utilizando onkeyup donde no tenga que realizar un submit..



saludos
En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: No se ha recibido ningún dato (AJAX)
« Respuesta #3 en: 9 Abril 2014, 21:19 pm »

Podrias implementar Autocomplete con JQueryUI

http://jqueryui.com/autocomplete/#remote-jsonp
En línea

Camarografo77

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: No se ha recibido ningún dato (AJAX)
« Respuesta #4 en: 9 Abril 2014, 22:51 pm »

Usa el evento onblur que se ejecuta cuando se pierde el foco de un campo de texto.

Saludos.
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: No se ha recibido ningún dato (AJAX)
« Respuesta #5 en: 10 Abril 2014, 10:05 am »

Tienes que optimizar.

En vez de hacer una consulta por cada tecla pulsada, haz lo así (ejemplo).

Esperar a que haya al menos 3 caracteres antes de hacer la primera consulta.
Si los datos devueltos son pocos (<50), sacarlos todos y ir procesando con js en vez de volver a hacer consultas.

Si son muchos, hacer otra consulta hasta que se reduzcan.

Tienes que intentar hacer el menor numero de requests tanto a la BD como al servidor.

Saludos
En línea

basickdagger


Desconectado Desconectado

Mensajes: 650


System.out.println("this is weird as fuck");


Ver Perfil
Re: No se ha recibido ningún dato (AJAX)
« Respuesta #6 en: 10 Abril 2014, 19:10 pm »

muchas gracias por su respuestas, y ps vaya, después de todo me inclinare por la respuesta de drvy, voy a probar a ver que tal, si no logro hacerla funcionar, tomare la regla de escribir la palabra completa y despues buscarla... saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
cURL no me muestra "en ocasiones" ningún dato
PHP
dimitrix 0 1,512 Último mensaje 21 Mayo 2008, 09:38 am
por dimitrix
[Tutorial] - Login con ajax . Mysql || Php con clases || Ajax « 1 2 »
PHP
Hadess_inf 15 26,441 Último mensaje 9 Diciembre 2010, 02:44 am
por delorian15
¿Una variable es un dato o contiene un dato?
Programación General
theluigy13etv 6 4,624 Último mensaje 19 Agosto 2011, 23:01 pm
por theluigy13etv
Como filtrar un dato con Ajax después de un "...?recordID=..."
Desarrollo Web
MiguelDidac 4 2,438 Último mensaje 27 Enero 2014, 22:44 pm
por MiguelDidac
disco duro lleno pero no se ve ningún dato
GNU/Linux
caluche 0 1,442 Último mensaje 9 Octubre 2015, 13:05 pm
por caluche
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines