Foros del Web » Programando para Internet » Jquery »

Autocomplete con PHP y Mysql no me funciona

Estas en el tema de Autocomplete con PHP y Mysql no me funciona en el foro de Jquery en Foros del Web. El autocompelte por algún motivo no me funciona bien. La función domains.php devuelve un json bien formado, ejem: " {\"1\":\"nuevodominio.es\"} " , pero no se ...
  #1 (permalink)  
Antiguo 03/09/2014, 05:34
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Autocomplete con PHP y Mysql no me funciona

El autocompelte por algún motivo no me funciona bien. La función domains.php devuelve un json bien formado, ejem:
"{\"1\":\"nuevodominio.es\"}" , pero no se "inserta" en el input que debería, es decir el autocomplete del input no funciona como debiera.

Este es el código que tengo:

Html
<input type='text' id='domain_query' name='domain' placeholder='Write a domain here...' />

Jquery
$(function() {
$("#domain_query").autocomplete({
source: "domains.php",
minLength: 3
});

});

Y el domains.php que devuelve un json con los dominios de la bd que encuentra según el string que escribimos en el input.

<?php
include "auth.php";

if ($_GET['term']){
$q = strtolower($_GET["term"]);
$domains = getDomains($q);
$json_request = json_encode($domains);

echo json_encode($json_request);
}



function getDomains($term) {
$result = mysql_query("select domain_id,domain from " . $mysql_table_prefix . "domains
WHERE domain like '%$term%'") or die(mysql_error());
$domains = array();

echo mysql_error();
if ($row = mysql_fetch_array($result)) {
$domains[$row['domain_id']] = $row['domain'];
}

echo mysql_error();
return $domains;

}

¿Alguna idea de que hago mal?.

Mil gracias de antemano.
__________________
Videotutoriales de Drupal
  #2 (permalink)  
Antiguo 03/09/2014, 11:09
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: Autocomplete con PHP y Mysql no me funciona

Me autorespondo, después de mucho dejarme la vista y revisar el código a fondo, he visto que una parte de este estaba mal, en concreto la parte php, este era el error.

Código:
 $json_request = json_encode($domains);

    echo json_encode($json_request);
Es decir, que codificaba a json dos veces lo que la bd me devolvía.

Lo correcto sería así:

Código:
    $json_request = json_encode($domains);

    echo $json_request;

Un saludo
__________________
Videotutoriales de Drupal

Etiquetas: 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




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