我有一些使用typeahead库的javascript,它将一些数据提交到我的feeds API。
Feed API可以根据唯一的GUID为不同的运动提供结果。
这是javascript:
var fixtures = new Bloodhound({
datumTokenizer: function(d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
minLength: 3,
remote: {
url: 'http://localhost/project/feeds/fixtures.php?param=%QUERY&sportguid=%SPORTGUID',
prepare: function(query, settings) {
settings.dataType = "jsonp";
settings.contentType = "application/json; charset=UTF-8";
settings.url = settings.url.replace('%QUERY', query);
settings.url = settings.url.replace('%SPORTGUID', "SPORT169736")
return settings;
},
filter: function(data) {
return jQuery.map(data.fixtures, function(item){
return {
label: item.name,
value: item.guid
};
});
}
}
});
fixtures.initialize();
并且有一大块PHP具有检查sportguid的条件,如果它不是默认值Sport 2
。
if(!isset($_GET['sportguid']) || strlen($_GET['sportguid']) == 0) {
$sportguid = 'SPORT16547';
}
else {
$sportguid = $_GET['sportguid'];
}
然而,当用户在现场输入数据并且返回错误的运动结果时,JS似乎没有提交sportguid。我相信这与我的javascript代码有关,但我不确定原因。
P.S。 sportguid是网络选项卡中提交的标题的一部分,也是参数(即输入到字段控件中的搜索词)。