使用PHP内部的参数调用Javascript函数


Call Javascript function with parameters inside PHP

我有一个javascript函数,它有一些参数(一个数组)。我想在php内部调用它。以下是我的代码

 <script type="text/javascript">
<?php 
$task_list=array();
        foreach($tasks as $row2){

            $task_list=$row2;
        }
         echo "display_diagram(".$task_list.");";
        ?>
function display_diagram(var1){
     .........................
     .........................
 }

当我在没有任何参数的情况下调用它时,它正在工作(我可以在javascript函数中显示内容。但当我给出参数时(它是一个数组),它不工作。你能给它一个解决方案吗?

这里的通常做法是创建一个单独的PHP文件,输出JSON数据,并使用AJAX请求获取该数据。下面是一个内联包含JSON数据的示例,但我通常不建议这样做,尤其是在数据很大的情况下


使用json_encode()将PHP变量转换为可在JavaScript中使用的变量。使用关联数组,您将得到一个类似{"a":1,"b":2,"c":3,"d":4,"e":5}的JavaScript对象。使用非关联数组,您将得到一个类似[1,2,3,4,5]的JavaScript数组

<script>
<?php
    $tasks = array(
        145 => array(
            'name' => 'Sorting Task',
            'owner' => 'user1'
        ),
        2343 => array(
            'name' => 'Processing Task',
            'owner' => 'user2'
        ),
        7266 => array(
            'name' => 'Another Task',
            'owner' => 'user1'
        ),
        8373 => array(
            'name' => 'Lorem Ipsum Task',
            'owner' => 'user3'
        )
    );
    echo 'display_diagram(' . json_encode($tasks) . ')';
?>
function display_diagram(tasks) {
    $.each(tasks, function (id, task) {
        console.log('Task #' + id + ': name=' + task.name + ', owner=' + task.owner);
    });
}
</script>

上面的JavaScript使用jQuery来处理对象。它应该在JavaScript控制台中输出以下内容:

Task #145: name=Sorting Task, owner=user1
Task #2343: name=Processing Task, owner=user2
Task #7266: name=Another Task, owner=user1
Task #8373: name=Lorem Ipsum Task, owner=user3