【发布时间】:2014-01-11 20:47:06
【问题描述】:
我正在使用 jQueryUI 自动完成功能来搜索 MySQL 数据库。当用户在搜索字段中按下回车键时,我想用从 DB 返回的结果填充一个 div。
代码有效并且确实返回了一个自动完成的建议列表。
但是,我无法理解如何使用 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);
【问题讨论】: