-1

可能重复:
Php 将数组传递给 Javascript
如何将 PHP 数组参数传递给 Javascript 函数?

所以我试图从一个由从数据库中提取的数据组成的数组中随机提取一个单独的元素。这是 php 代码的简化版本。

        function getID() {
                $result = array('1','2','3','4');

                $id = $result[array_rand($result)];
                return $id;
        }

从这里开始,我使用返回的 ID 定义一个 JavaScript 变量。

奇怪的是,当我使用传递的返回 $id 定义 JS 变量时,javascript 变量被定义为 = "Array" 而不是 $id 数据。

如果我将 php 代码更改为:

        function getID() {
                $result = array('1','2','3','4');

                $id = array_rand($result);
                return $id;
        }

javascript 变量定义为 $id,它是数组键,而不是数组数据。

所以我尝试将php代码更改为:

        function getID() {
                $result = array('1','2','3','4');

                return $result[0];
        }

但是 javascript 再次被定义为“数组”。

就好像 php 不会使用数组标记。

欢迎在这里提出任何想法。

4

1 回答 1

2

您不能直接将数组直接从 php 传递给 javascript。用于json_encode将您的数组作为 Json 编码字符串返回。

function getID() {
   $result = array('1','2','3','4');

   json_encode($result);
}

在javascript中你可以这样做:

var obj = JSON.parse(jsonFormattedStringThatWasGeneratedByFunctionGetID);

大多数浏览器都支持JSON.parse()

编辑:起初我误解了你的问题,但你仍然可以使用这种方法并在客户端获得所需的项目,但这远非完美的解决方案。我将把这个答案作为另一种选择。

于 2012-11-07T07:15:45.317 回答