在materializecss中使用由JQuery AJAX提取的数组'自动填写数据

时间:2017-01-29 04:34:38

标签: javascript jquery ajax materialize

这是我第一次使用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,
}

这样自动更正可以使用它

1 个答案:

答案 0 :(得分: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);