Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript typeahead.js remote不返回任何内容_Javascript_Php_Jquery_Typeahead.js - Fatal编程技术网

Javascript typeahead.js remote不返回任何内容

Javascript typeahead.js remote不返回任何内容,javascript,php,jquery,typeahead.js,Javascript,Php,Jquery,Typeahead.js,我似乎无法让typeahead.js的远程功能正常工作。我正在发布代码以开始: $(document).ready(function() { var locations = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), queryTokenizer: Bloodhound.tokenizers.whitespace, remot

我似乎无法让typeahead.js的远程功能正常工作。我正在发布代码以开始:

$(document).ready(function() {
    var locations = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        remote: baseUrl + 'restaurants/fetchZIP/%QUERY'
    });

    $('#location').typeahead({
        hint: true,
        highlight: true,
        minLength: 1,
        source: locations.ttAdapter()
    });
    /*$('#location').keyup(function() {
        $.ajax({
            method: 'POST',
            dataType: 'json',
            url: baseUrl + 'restaurants/fetchZIP/',
            data: $('#add_restaurant').serialize(),
            success: function(data) {
                console.log(data);
            }
        });
    });*/
});
这是一个文件,我在其中执行“猎犬远程”操作,并在所需的输入字段上使用typeahead。注释部分是一个测试,以确保我的DB语句没有错误。为了进行测试,我不得不稍微重写以下代码,但基本上只是从GET切换到POST:

public function fetchZIP($query)
{
    $cantons = DataLoc::find(array('zip LIKE' => '%'.$query));
    echo json_encode($cantons);
}

这是“restaurants/fetchZIP/”页面的操作(它是用CodeIgniter编写的)。所以,我真的不知道发生了什么,因为我无法在typeahead()函数中控制台.log(),所以我希望任何人都能引导我回到正确的方向。

首先,定义后必须使用initialize bloodhound by
locations.initialize()

这就是typeahead的初始化方式

typeahead(选项,[*数据集])

您已将源(或数据集)包括在选项中,因此请尝试以下操作

$('#location').typeahead({
    hint: true,
    highlight: true,
    minLength: 1
},{
    source: locations.ttAdapter()
});

希望这有帮助。

谢谢,伙计,这很有帮助!现在我只需要重新排列返回的SQL语句中的数据集,这样typeahead就不会给出10个“未定义”的建议:)我很高兴它有帮助:)