猎犬& Typeahead JS自动完成不会提交额外的$ _GET变量

时间:2017-06-12 16:03:53

标签: javascript php jquery typeahead.js bloodhound

我有一些使用typeahead库的javascript,它将一些数据提交到我的feeds API。

Feed API可以根据唯一的GUID为不同的运动提供结果。

  • 运动1 - SPORT169736
  • 运动2 - SPORT16547

这是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是网络选项卡中提交的标题的一部分,也是参数(即输入到字段控件中的搜索词)。

0 个答案:

没有答案