我正在尝试使用 Twitter typeahead,但我遇到了一个问题。我不知道 typeahead 如何将字符串传递给服务器。是通过 GET 参数吗?如果是这样,参数的名称是什么?
问问题
5396 次
2 回答
14
通过 GET 参数最简单,您可以选择所需的任何参数。
在 JS 中:
$('#search').typeahead({
name: 'Search',
remote: '/search.php?query=%QUERY' // you can change anything but %QUERY, it's Typeahead default for the string to pass to backend
});
在 PHP(或您拥有的任何后端)中:
$query = $_GET['query'];
希望你能得到基本的想法。
于 2013-08-01T13:09:50.330 回答
1
您可能想考虑这样的事情,这是一个非常基本的远程数据源示例。本例中的 get 参数为 'q'
// Get your data source
var dataSource = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'path/to/your/url/json/datasource/?q=%QUERYSTRING',
wildcard: '%QUERYSTRING'
}
});
// initialize your element
var $typehead = $('#form input').typeahead(null, {
source: dataSource
});
// fire a select event, what you want once a user has selected an item
$typehead.on('typeahead:select', function(obj, datum, name) {
//your code here
});
////////////////////////////////////
# in python (django) we get a query string using the request object passed through a view like this
query = request.GET.get('q') or ""
//the caveat [or ""] is just to prevent null exceptions
///////////////////////////////////
# using php
$query = ($_GET['q']) ? $_GET['q'] : "";
于 2015-06-27T01:39:28.457 回答