jquery ui自动完成与数据库

13 浏览
0 Comments

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为空”。

0