jquery ui自动完成与数据库
jquery ui自动完成与数据库
我对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"}]
有人可以告诉我我做错了什么吗?开始变得相当沮丧了。输入框只是变成了“白色”,没有显示任何选项。如果我指定一个值数组,代码是可以工作的。
更新
我已经将代码更改为以下内容,但仍然没有运气。
$("#login_name").autocomplete({
source: "/ajax/login_name.php",
dataType: "json",
minLength: 2,
cache: false,
select: function(event, ui) {
alert(ui);
}
});
使用FireFox的Web开发工具,我得到了一个错误“b为空”。