Soy bastante nuevo en JQuery y quizás estoy tratando de lograr algo que podría ser un poco más difícil para un principiante. Sin embargo, estoy intentando crear una autocompleta que envíe el valor actual a un script PHP y luego devuelva los valores necesarios.jquery ui autocompletar con la base de datos
Aquí está mi código Javascript
$("#login_name").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://www.myhost.com/myscript.php",
dataType: "jsonp",
success: function(data) {
alert(data);
response($.map(data, function(item) {
return {
label: item.user_login_name,
value: item.user_id
}
}))
}
})
},
minLength: 2
});
Y aquí es la mitad de la última "myscript.php"
while($row = $Database->fetch(MYSQLI_ASSOC))
{
foreach($row as $column=>$val)
{
$results[$i][$column] = $val;
}
$i++;
}
print json_encode($results);
que produce la siguiente salida
[{"user_id":"2","user_login_name":"Name1"},{"user_id":"3","user_login_name":"Name2"},{"user_id":"4","user_login_name":"Name3"},{"user_id":"5","user_login_name":"Name4"},{"user_id":"6","user_login_name":"Name5"},{"user_id":"7","user_login_name":"Name6"}]
¿Puede cualquier persona
dime dónde estoy yendo mal, por favor? Empezando a estar bastante frustrado. El cuadro de entrada simplemente se vuelve "blanco" y no se muestran opciones. El código funciona si especifico una matriz de valores.
ACTUALIZACIÓN He cambiado el código y aún no he tenido suerte.
$("#login_name").autocomplete({
source: "/ajax/login_name.php",
dataType: "json",
minLength: 2,
cache: false,
select: function(event, ui) {
alert(ui);
}
});
Utilizando la herramienta de desarrollador web de FireFox, aparece el error "b is null".
Sólo tenía un pensamiento; hace que "myscript.php" necesite enviar un "encabezado JSON" (si tal cosa existe) ... – bigstylee
Parece que el argumento no se pasa a través de? q = como está documentado ??? – bigstylee
Ahora he eliminado las opciones (isset ($ _ GET ['q'])) obtengo "indefinido" en el autocompletar al usar $ ("# login_name"). Autocompletar ({ fuente: "/ ajax /login_name.php", tipoDatos: "json", minLength: 2, caché: falso, formatItem: function (datos) { \t retorno data.user_login_name; }, formatResult: function (datos) { \t return data.user_id; } }); – bigstylee