这是我的jquery函数:
$(function() {
$("#user").autocomplete({
source: 'spiderman/null/users.php',
minLength: 2
});
});
当我开始在我的
中输入至少 2 个字母时<input type="text" class="highlight" id="user" name="user"/>
它显示一个项目列表,上面写着“未定义”。 看起来它是一个无效的源,但我很确定它是有效的,因为我已经在同一个目录中创建了
include_once
,并且源脚本已加载。
这是我的 PHP 代码:
if( !$_GET['term'] ) {
die();
}
$return_arr = array();
$ac_term = "%".$_GET['term']."%";
$query = "SELECT `name` FROM `users` WHERE `name` LIKE :term";
$result = $conn->prepare($query);
$result->bindValue(":term", $ac_term);
$result->execute();
/* Retrieve and store in array the results of the query.*/
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$row_array['name'] = $row['name'];
array_push($return_arr, $row_array);
}
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
我也测试了 PHP 代码,它运行良好:至于术语
lol
,它确实返回了:
[{"name":"LolShit"},{"name":"Lolipop"},{"name":"Lolo"},{"name":"Lolololololololo"},{"name":"Loll"},{"name":"Pro Lol"}]
我想你要么只是希望你的 JSON 数组看起来像这样:
["LolShit","Lolipop","Lolo","Etc..."]
或者,如果您想使用对象,请提供
label
和 value
(UI 自动完成所需的):
[{"label":"LolShit","value":"LolShit"},{"label":"Lolipop","value":"Lolipop"},...]
我已经添加了
$row_array['value'] = $row['name'];
它起作用了……该死。 我希望可以回答自己的问题,哈哈。