【问题标题】:Using array fetched by JQuery AJAX in materializecss' auto-complete data在materializecss的自动完成数据中使用JQuery AJAX获取的数组
【发布时间】:2017-01-29 04:34:38
【问题描述】:

这是我第一次使用 materializecss,我想通过添加从 DB 获取的选项数组来使其自动完成功能更加动态,但它似乎不起作用。我自己做了几次尝试,搜索堆栈溢出和其他论坛几乎一天,但找不到答案。

这是我的 JS:

    function fetchGlobalSkills(){
    var skills = [];
    $.ajax({
        url: "/skills/global",
        dataType: "json",
    }).success(function(data){
            $.each(data, function(key, value){
                $.each(value, function (key, value) {
                    skills.push(value);
                });
                console.log(JSON.stringify(value));
        });
    });
    $('input#skillSearch').on('focus', function(){
                data = [];
                skills.forEach(function () {
                    data.push(JSON.stringify(skills.skillName));
                });
        console.log(data)
    });
}

fetchGlobalSkills();

我知道这不是最好的,但如果你能理解我的方法并帮助我解决这个问题,那就太好了。

另外,我检查了我的控制器的 O/P,它看起来很好,例如这是我的 o/p:

[[{"skillName":"smart"}],[{"skillName":"confident"}]]

提前感谢您的帮助

更新:

我根据一个答案更新了上面的js,我在这里得到的是:

[undefined, undefined, undefined] 在数据数组中。预期结果是:

data:{
    "fast": null,
    "smart": null,
}

以便自动更正可以使用它

【问题讨论】:

    标签: javascript jquery ajax materialize


    【解决方案1】:

    这样取你的技能名称...

        skills = [];//creates an array
         data =[[{"skillName":"smart"}],[{"skillName":"confident"}]];//your data
    
         data.forEach(function(element,index,array){
        skills.push(element[0].skillName);
         });
         console.log(skills);

    【讨论】:

    • 我可以这样做:data =[$.ajax({url: '/skills/global', dataType: 'json'})]; 吗?使用 ajax 动态获取数据?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多