【发布时间】:2013-02-04 02:44:43
【问题描述】:
我使用 bootstrap typeahead 和 ajax 调用来为我的网站创建一种即时搜索。一切都很好,除了 Typeahead 似乎只能处理标题而不是 href 的事实。示例:
我的 PHP 代码是这样的:
$results = mysql_query("MY SELECT QUERY GOES HERE");
$array = array();
while ($row = mysql_fetch_assoc($results)){
$array[] = $row['title'];
}
echo json_encode($array);
我的 Javascript 在这里:
$('#quickSearch').typeahead({
source: function (query, process) {
$.ajax({
url: "my_php_file.php",
type: "POST",
data: 'query=' + query,
dataType: 'JSON',
async: true,
success: function(data){
console.log(data)
process(data)
}
})
}
});
...一起,这些结果产生了这个 HTML:
<ul class="typeahead dropdown-menu" display: block;">
<li data-value="Baltimore" class="active">
<a href="#"><span class="highlighter">B</span>altimore</a>
</li>
</ul>
过程函数是 Bootstrap 内置的函数,它获取每个结果的标题并用它填充下拉列表。我也希望能够从我的数据库中获取 href,然后下拉列表中的链接将真正起作用,而不仅仅是为了展示。
问题是,如果我在我的 PHP 文件中写 $array[] = array("title"=>$row['title'],"href"=>$row['link']");,它会破坏一切,因为大概 process() 无法处理额外的数据。
有人有什么建议吗?更多关于 Typeahead 的信息可以在这里找到:http://twitter.github.com/bootstrap/javascript.html#typeahead
谢谢
【问题讨论】:
标签: ajax href bootstrap-typeahead