首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将PHP数组传递给JavaScript函数

将PHP数组传递给JavaScript函数
EN

Stack Overflow用户
提问于 2011-02-03 19:48:10
回答 4查看 370.1K关注 0票数 144

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

这是我的代码:

代码语言: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数组的值。

如何解决此问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-19 21:23:51

在下面的示例中,您有一个PHP数组,然后首先通过PHP数组创建一个JavaScript数组:

代码语言:javascript
复制
<script type="javascript">
    day = new Array(<?php echo implode(',', $day); ?>);
    week = new Array(<?php echo implode(',',$week); ?>);
    month = new Array(<?php echo implode(',',$month); ?>);

    <!--  Then pass it to the JavaScript function:   -->

    drawChart(<?php echo count($day); ?>, day, week, month);
</script>
票数 9
EN

Stack Overflow用户

发布于 2011-02-03 19:54:00

使用JSON

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

代码语言:javascript
复制
<script type="text/javascript">
    var obj = <?php echo json_encode($php_variable); ?>;
</script>

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

代码语言:javascript
复制
drawChart(600/50, <?php echo json_encode($day); ?>, ...)

在需要从JSON-string中解析出对象的情况下(比如在AJAX请求中),安全的方法是使用如下所示的JSON.parse(..)

代码语言:javascript
复制
var s = "<JSON-String>";
var obj = JSON.parse(s);
票数 206
EN

Stack Overflow用户

发布于 2013-02-28 14:23:58

您可以使用json_encode PHP函数将PHP数组传递给JavaScript。

代码语言:javascript
复制
<?php
    $phpArray = array(
        0 => "Mon", 
        1 => "Tue", 
        2 => "Wed", 
        3 => "Thu",
        4 => "Fri", 
        5 => "Sat",
        6 => "Sun",
    )
?>

<script type="text/javascript">

    var jArray = <?php echo json_encode($phpArray); ?>;

    for(var i=0; i<jArray.length; i++){
        alert(jArray[i]);
    }

 </script>
票数 76
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4885737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档