php - 将 PHP 数组传递给 JavaScript 函数

标签 php javascript

我正在尝试将 PHP 数组变量转换为 JavaScript 变量。

这是我的代码:

<html>
    <head>
        <script type="text/javascript">
              function drawChart(row,day,week,month,date)
              {
                  // Some code...
              }
        </script>
    </head>

    <body>
        <?php
            for($counter = 0; $counter<count($au); $counter++)
            {
                switch($au[$counter]->id)
                {
                    case pageID.'/insights/page_active_users/day':
                        $day[] = $au[$counter]->value;
                    break;
                    case pageID.'/insights/page_active_users/week':
                        $week[] = $au[$counter]->value;
                    break;
                    case pageID.'/insights/page_active_users/month':
                        $month[] = $au[$counter]->value;
                    break;
                }
            }
        ?>
        <script>
            drawChart(600/50, '<?php echo $day; ?>', '<?php echo $week; ?>', '<?php echo $month; ?>', '<?php echo createDatesArray(cal_days_in_month(CAL_GREGORIAN, date('m',strtotime('-1 day')), date('Y',strtotime('-1 day')))); ?>');
        </script>
    </body>
</html>

我无法获取 PHP 数组的值。

我该如何解决这个问题?

最佳答案

使用 JSON .

在以下示例中,$php_variable 可以是任何 PHP 变量。

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

在你的代码中,你可以像下面这样使用:

drawChart(600/50, <?php echo json_encode($day); ?>, ...)

如果您需要从 JSON 字符串中解析出对象(例如在 AJAX 请求中),安全的方法是使用 JSON.parse(..),如下所示:

var s = "<JSON-String>";
var obj = JSON.parse(s);

关于php - 将 PHP 数组传递给 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885737/

相关文章:

php - Exchange Web 服务请求在某些使用 PHP-EWS 的服务器上返回 401

javascript - 带水线的 Sailsjs 地理空间解决方案

php - 如何使 mysql 存储变量中的链接在页面上呈现时可点击

php - php系统中的python命令()

php - header ("location") 导致 [500] 内部服务器错误?

javascript - 现代 JavaScript 引擎执行哪些优化?

javascript - 像 Jquery Mobile 中的搜索栏一样的文本框

php - Yii2 paypal支付集成

javascript - 加载以作为 jquery 中的追加工作

javascript - 据称相同的代码会导致不同的路由行为