2012-08-07 57 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> 

如果你不想单独的文件,并不介意使用它的全局变量。