Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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
Jquery 引导类型预选ajax从数据中选择值_Jquery_Json_Twitter Bootstrap_Typeahead - Fatal编程技术网

Jquery 引导类型预选ajax从数据中选择值

Jquery 引导类型预选ajax从数据中选择值,jquery,json,twitter-bootstrap,typeahead,Jquery,Json,Twitter Bootstrap,Typeahead,我正在使用 我的电话: $('#SearchUser').typeahead({ ajax: { url: '/users/ajax_finduser', triggerLength: 3, timeout: 300, method: 'post',

我正在使用

我的电话:

$('#SearchUser').typeahead({
                ajax: { 
                    url: '/users/ajax_finduser', 
                        triggerLength: 3, 
                        timeout: 300,
                        method: 'post',

                },
                display: 'name',
                val: 'id',
                itemSelected: updateID
            });
我的新输出:

这是我的问题,typeahead期望的VAL和名称应该是这样的:

[
    { id: 1, name: 'Some users name' },
    { id: 2, name: 'Another users name' }
]
那么,如何将额外的级别添加到我的typeahead函数USER.name+USER.id中呢?我不知道用什么{}[]

如何修复引号?typeahead不接受json输出的原样。我在某处读到我的输出是正确的。我在这里遗漏了什么吗?

遵循@RuslanasBalūIūnas的建议 以下是我的结论:

autosep = '####';
$('.autocomplete').typeahead({
    minLength: 3
  , source: function (query, process) {
        if (!finished) {
            return;
        }
        finished = false;
        return $.get(
            'the_action'
          , the_params
          , function (response) {
                var data = new Array(); 
                for (var i in response) {
                    data.push(
                        response[i]['id']
                      + autosep
                      + response[i]['label']
                    );
                }
                finished = true;
                return process(data);
            }
        );
    }
  , highlighter: function(item) {
        var parts = item.split(autosep);
        parts.shift();
        return parts.join(autosep);
    }
  , updater: function(item) {
        var parts = item.split(autosep);
        $('#the_id').val(parts.shift());
        return parts.join(autosep);
    }
});
按照@RuslanasBalčiūnas的建议 以下是我的结论:

autosep = '####';
$('.autocomplete').typeahead({
    minLength: 3
  , source: function (query, process) {
        if (!finished) {
            return;
        }
        finished = false;
        return $.get(
            'the_action'
          , the_params
          , function (response) {
                var data = new Array(); 
                for (var i in response) {
                    data.push(
                        response[i]['id']
                      + autosep
                      + response[i]['label']
                    );
                }
                finished = true;
                return process(data);
            }
        );
    }
  , highlighter: function(item) {
        var parts = item.split(autosep);
        parts.shift();
        return parts.join(autosep);
    }
  , updater: function(item) {
        var parts = item.split(autosep);
        $('#the_id').val(parts.shift());
        return parts.join(autosep);
    }
});

快速浏览一下插件,这不会发生。你应该考虑修改你的输出。。我修改了输出。但是现在有一个问题。。有什么建议吗?或者有另一个我可以使用的提前打字脚本建议?似乎对我来说很好:。你有什么错误吗?但是如果你想删除数字周围的引号,在你的服务器端输出上应该有一些数字解析。我通过改变插件来解决这个问题。我是如何做到的:这显示了如何使用未经修改的Twitter引导typeahead插件来填充id。快速查看一下该插件,这不会发生。你应该考虑修改你的输出。。我修改了输出。但是现在有一个问题。。有什么建议吗?或者有另一个我可以使用的提前打字脚本建议?似乎对我来说很好:。你有什么错误吗?但是如果你想删除数字周围的引号,在你的服务器端输出上应该有一些数字解析。我通过改变插件来解决这个问题。我是如何做到的:这显示了如何使用未经修改的Twitter引导typeahead插件来填充id。这似乎对我不起作用。我删除了“源”部分,因为我的选择在页面中是硬编码的。我仍然在建议中得到展示。这似乎对我不起作用。我删除了“源”部分,因为我的选择在页面中是硬编码的。我仍然在建议中得到展示。