Ver Mensaje Individual
  #13 (permalink)  
Antiguo 21/03/2010, 14:39
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Ayuda con script autocompletar JQUERY

Creo haber descubierto porque no cogía bien el resultado, si la salida que generamos es json para que vamos codificar nuevamente con

echo json_encode($return);

He quitado esa linea y he hecho un simple echo y esta parte ha funcionado.

Código PHP:
Ver original
  1. $return = '{';
  2. $return .= '"query": "da",';
  3. $return .= '"suggestions": ["dani","soporte"],';
  4. $return .= '"data": ["dani","soporte"]';
  5. $return .= '}';
  6.  
  7. echo $return;

Adaptando este resultado a la consulta SQL podemos sacarlo así y completar el trabajo!


Código PHP:
Ver original
  1. <?php
  2.  
  3. $dbhost="localhost"; // servidor. Generalmente localhost si el archivo esta alojado en el servidor ya.
  4. $dbusuario=""; // aqui debes ingresar el nombre de usuario
  5. $dbpassword=""; // password de acceso para la base de datos
  6. $db=""; // el nombre de la base de datos
  7. $conexion = mysql_connect($dbhost, $dbusuario, $dbpassword); // hacemos la coneccion
  8. mysql_select_db($db, $conexion); // conectamos con la base de datos
  9.  
  10. $busqueda = $_GET['query']; // esto representa a lo que el usuario esta escribiendo en el teclado
  11.  
  12. $listado = mysql_query ("SELECT * FROM tabla WHERE usuario like '%$busqueda%'");
  13.  
  14. $sugerencias=array();
  15. while ($row = mysql_fetch_array($listado)){
  16.     $sugerencias[]= '"'.$row[usuario].'"'; // Ponemos comillas dobles a las coincidencias
  17. }
  18.  
  19. $return = "{";
  20. $return .= '"query": "'.$busqueda.'",';
  21. $return .= '"suggestions":[';
  22. /*if (count($sugerencias)==0)
  23.     $return .= '"No se encontraron resultados"';
  24. else
  25.     $return .= implode(",",$sugerencias);
  26. */
  27. $return .= implode(",",$sugerencias);
  28. $return .= "]";
  29. $return .= "}";
  30.  
  31. echo $return;
  32.  
  33. ?>

¿Qué os parece, me dejo algo?

Muchas gracias!