2011-10-10 51 views
0

我有兩個文件。傳遞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自動完成功能根本不起作用。

回答

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

應該減少[[ 「foo」 的],[ 「酒吧」]]至[ 「foo」 的, 「酒吧」]

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

是一個二維陣列。你的Javascript期待一維數組。讓你的PHP輸出:

[ "javascript", "PHP" ] 

在PHP中的數組應該是這樣的:

array("javascript", "php");