Я новичок в JQuery и, возможно, пытаюсь достичь чего-то, что может стать более трудным для начинающего. Однако я пытаюсь создать автозаполнение, которое отправляет текущее значение в PHP script, а затем возвращает необходимые значения.
Вот мой код 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
});
И вот последняя половина "myscript.php"
while($row = $Database->fetch(MYSQLI_ASSOC))
{
foreach($row as $column=>$val)
{
$results[$i][$column] = $val;
}
$i++;
}
print json_encode($results);
Что производит следующий вывод
[{"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"}]
Может ли кто-нибудь сказать мне, где я ошибаюсь, пожалуйста? Начинаю расстраиваться. Коробка ввода просто превращается в "белый", и никаких параметров не отображается. Код работает, если я задаю массив значений.
UPDATE Я изменил код и до сих пор не повезло.
$("#login_name").autocomplete({
source: "/ajax/login_name.php",
dataType: "json",
minLength: 2,
cache: false,
select: function(event, ui) {
alert(ui);
}
});
Используя инструмент FireFox Web Developer, я получаю сообщение об ошибке "b имеет значение null".