将现有的php数组传递给jquery

时间:2012-08-07 22:32:02

标签: php jquery arrays

我有一个PHP数组,我想传递给我的jquery(用我的php数组替换测试数组)。

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
            });

那么如何将“source”的var设置为我的php数组?

建议?

一如既往,你太棒了!

- 汤姆

4 个答案:

答案 0 :(得分:1)

你可以使用php的json_encode函数将php数组转换为json。然后你可以使用json作为javascript数组。

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

我不知道你是如何从php代码获取数据到javascript代码的,但是如果你将数据打印为json,你可以通过ajax调用来获取它。

答案 1 :(得分: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

答案 2 :(得分: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>

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

答案 3 :(得分:0)

您可以执行以下操作:

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

但将语言X与语言Y混合是一种不好的做法。

好吧,看看我对这篇文章的回答,你可以用更好的方式做到以下几点:

Is echoing Javascript code condtionally based on server-side logic considered harmful?

希望这会有所帮助: - )