将json对象传递给数组 - 自动完成

时间:2011-10-10 17:09:26

标签: php javascript jquery json

我有两个文件。

location.php, that outputs this:

[["javascript"],["PHP"]] 

并在另一个档案中:

<script type="text/javascript">
$.getJSON('location.php', function(data) {
      var sampleTags = [];

      $.each(data, function(key, val) {
         sampleTags.push(val);
         });

         alert(sampleTags); // show javascript, php


        //-------------------------------
        // Preloading data in markup
        //-------------------------------
        $('#myULTags').tagit({
            availableTags : sampleTags, // this param is of course optional. it's for autocomplete.
            // configure the name of the input field (will be submitted with form), default: item[tags]
            itemName : 'item',
            fieldName : 'tags'
        });
    });
</script>

自动完成功能无效。为什么?

如果我使用:

var sampleTags = [ 'javascript', 'php'];

一切运作良好,但使用json自动完成功能根本不起作用。

2 个答案:

答案 0 :(得分:3)

$.each(data, function(key, val) {
  sampleTags.push(val[0]);
});

应将[[“foo”],[“bar”]]减少为[“foo”,“bar”]

答案 1 :(得分:2)

[["javascript"], ["PHP"]]

是二维数组。你的Javascript期待一维数组。有你的PHP输出:

[ "javascript", "PHP" ]

在PHP中,数组应如下所示:

array( "javascript", "php" );