Я довольно новичок в JQuery и, возможно, пытаюсь достичь чего-то, что может быть немного сложнее для новичка. Однако я пытаюсь создать автозаполнение, которое отправляет текущее значение в сценарий PHP, а затем возвращает необходимые значения.
Вот мой код 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 я получаю сообщение об ошибке "b is null".