Sono abbastanza nuovo per JQuery e forse cerco di ottenere qualcosa che potrebbe essere più difficile per un principiante. Tuttavia sto cercando di creare un completamento automatico che invia il valore corrente a uno script PHP e quindi restituisce i valori necessari.jquery ui completamento automatico con database
Ecco il mio codice 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
});
E qui è la seconda metà del "myscript.php"
while($row = $Database->fetch(MYSQLI_ASSOC))
{
foreach($row as $column=>$val)
{
$results[$i][$column] = $val;
}
$i++;
}
print json_encode($results);
che produce il seguente output
[{"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"}]
Can
chiunque dimmi dove sto sbagliando, per favore? Inizia a sentirsi piuttosto frustrato. La casella di input diventa "bianca" e non viene mostrata alcuna opzione. Il codice funziona se si specifica una matrice di valori.
UPDATE Ho cambiato il codice e ancora non ho avuto fortuna.
$("#login_name").autocomplete({
source: "/ajax/login_name.php",
dataType: "json",
minLength: 2,
cache: false,
select: function(event, ui) {
alert(ui);
}
});
Utilizzando lo strumento di sviluppo Web di FireFox, viene visualizzato l'errore "b è nullo".
appena avuto un pensiero; "myscript.php" deve inviare una "intestazione JSON" (se esiste una cosa simile) ... – bigstylee
Sembra che l'argomento non venga passato attraverso il? q = come documentato ??? – bigstylee
Ora ho rimosso (isset ($ _ GET ['q'])) ottengo opzioni "non definite" nel completamento automatico quando si utilizza $ ("# login_name"). Completamento automatico ({ origine: "/ ajax /login_name.php", dataType: "json", minLength: 2, di cache: false, FORMATtutti: la funzione (i dati) { \t ritorno data.user_login_name; }, formatResult: la funzione (i dati) { \t ritorno data.user_id; } }); – bigstylee