2012-08-07 58 views
0

我有一個PHP數組我想傳遞給我的jQuery(用我的php數組替換測試數組)。將現有的php數組傳遞給jquery

Array 
(
    [12] => Some Text 
    [6] => Another text 
    [11] => one more text 
) 

的Jquery:

$('#SearchUser').typeahead({ 
       source: [ 
        { ID: 1, Name: 'Toronto' }, 
        { ID: 2, Name: 'Montreal' }, 
        { ID: 3, Name: 'New York' }, 
        { ID: 4, Name: 'Buffalo' }, 
        { ID: 5, Name: 'Boston' }, 
        { ID: 6, Name: 'Columbus' }, 
        { ID: 7, Name: 'Dallas' }, 
        { ID: 8, Name: 'Vancouver' }, 
        { ID: 9, Name: 'Seattle' }, 
        { ID: 10, Name: 'Los Angeles' } 
       ], 
       display: 'Name', 
       val: 'ID', 
       itemSelected: updateID 
      }); 

所以,我怎麼能爲 「源」 的VAR設置爲我的PHP數組?

對此提出建議?

一如既往,你真棒!

-Tom

+0

你可以鏈接到你正在使用的typeahead插件? – ahren 2012-08-07 22:33:20

回答

1

如何我已經在我的項目是一個做這件事,

$.get("<?= $baseUrl ?>search/data", function (data) { 
    var dataObject = JSON.parse(data); 
    $('#q').typeahead({ 
     'source': dataObject, 
     // 'items': 5 
    }); 
}); 

,我的搜索控制器的數據的方法是:

echo (json_encode($arr)); // $arr is ["a","b","c"] etc. but you can have an associated array too. 

基本上,顯示我的代碼點是說使用json

1

您可以使用PHP的json_encode函數來CONVER一個PHP數組到JSON。然後你可以使用json作爲javascript數組。

http://www.php.net/manual/en/function.json-encode.php

我不知道你是如何從PHP代碼中獲取數據到javascript代碼,但是如果打印數據爲JSON,你可以把它通過Ajax調用。

0

使用PHP的json_encode()函數創建一個有效的JSON字符串,然後使用jQuery的$.getJSON()讀取該字符串。

事情是這樣的:

get_array.php

$someArray = /* whatever */; 
echo json_encode($someArray); 

read_array.js

$.getJSON('get_array.php', function(data) { 
    // data now contains your array 
}); 

或者,你可以做這樣的事情:

<script type="text/javascript"> 
    var someArray = <?php echo json_encode($someArray); ?> 
</script> 

如果你不想單獨的文件,並不介意使用它的全局變量。