我正在使用jQueryUI自动完成来搜索MySQL数据库。当用户在搜索字段中按Enter键时,我想填充一个div,其中包含从DB返回的结果。
代码可以运行并返回自动完成的建议列表。
但是,我无法理解如何使用select:
函数中返回的JSON数据,例如访问JSON对象中返回的title
和author
字段。请参阅jQuery代码示例中指示的alert()行。
ui.item
提醒[object Object]
ui.item.title
警告未定义。
我还能尝试什么?
另外,item
是否使用正确的标签?如果是这样,为什么?它来自何处(我使用item
,因为它在我审查的几个例子中一直使用。)
我的jQuery:
$('#srxbks').autocomplete({
source: "autocomplete_test.php",
minLength: 1,
select: function( event, ui ) {
alert('You chose: ' + ui.item); <=== THIS LINE <===
var out = 'Title: ' + ui.item.title + '<br>';
out += 'Author: ' + ui.item.author + '<br>';
$('.booksTableDIV').val(out);
}
});
我的PHP:
<?php
include 'connect.php';
$term = strip_tags($_GET['term']);//retrieve search term sent by autocomplete
$qstring = "SELECT * FROM `books` WHERE `title` LIKE '%" .$term. "%'";
$query = mysql_query($qstring) or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
$row['title']=htmlentities(stripslashes($row['title']));
$row['bid']=(int)$row['bid'];
$row_set[] = $row['title'];
}
echo json_encode($row_set);
答案 0 :(得分:1)
如果不知道JSON响应是什么,很难给出确切的答案。
警告不是您注意到的查看javascript对象的好方法。尝试使用console.log
在浏览器的开发者控制台中检查对象。这有助于您找到正确的语法。
访问开发者控制台......
在每个中,应该有一个控制台选项卡,用于查看使用console.log
记录的日志消息。
我怀疑你只需要做ui.item[0]
或ui.item.title
之类的事情......但是再一次,我不能确定没有JSON数据。