【发布时间】:2011-01-26 20:48:38
【问题描述】:
我正在尝试在 jQuery UI 中使用新的 autocomplete function,但遇到了一些问题。
我能够从数据库中检索数据(我可以在 FireBug 中看到它),但我无法显示下拉列表(或提醒数据)。
这是我的 jQuery 代码:
jQuery('#brand_search').autocomplete({
source: "http://mysite.com/wp-content/themes/storelocator/include/jquery.search.php?instance=brand",
minLength: 2,
delay: 50,
select: function(e, ui) {
alert(ui);
}
});
这是我的 PHP 代码:
/* ------------------ Brand Autosuggest ------------------------- */
function autosuggestBrand($dal)
{
$result = $dal->getRowBySearch('sl_label','name', $this->term);
$brands = array();
if(mysql_num_rows($result)>0)
{
while($row = mysql_fetch_assoc($result))
{
array_push($brands, array(
"id" => $row['id'],
"name" => html_entity_decode($row['name'], ENT_QUOTES, 'UTF-8') )
);
}
}
echo json_encode($brands);
}
我看过这两个指南:
http://www.jensbits.com/2010/03/29/jquery-ui-autocomplete-widget-with-php-and-mysql
http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget
但仍然不能完全弄清楚如何显示/提醒获取的数据。
这是echo json_encode的结果
[
{"id":"4642","name":"Mo Koshji"},
{"id":"4627","name":"MO-A"},
{"id":"4626","name":"MO'CYCLE"},
{"id":"4628","name":"mo851"},
{"id":"4629","name":"Mob Action"}
]
【问题讨论】:
-
@Steven:当您输入带有自动完成小部件的输入时,您是否看到任何结果?
-
@Andrew Whitaker - 不,界面上什么都没有。但我确实通过 Firebug 看到 PHP 正在返回 JSON 结果。
-
也许一文不值,但您是否尝试过提醒 ui.item.id 或 ui.item.name?因为默认的属性名称是标签和值
-
尝试以这种格式生成结果:
[ { "id": "the_id", "label": "the_label", "value": "the_value" } ] -
@Steven:尝试将 PHP 中的
name更改为value。
标签: jquery jquery-ui-autocomplete