如何在js函数中使用用php创建的数组

时间:2019-07-05 07:40:29

标签: javascript php

我写了一个工具,可以用php从数据库(加载站点时)创建一个数组,现在想使用js函数来更改该数组在表中的显示方式(不同范围,列等)。 )。

如何将php数组传递给js,以便可以在js函数中使用它。

已经在“脚本”部分尝试过此操作

   <?php
        $js_data = json_encode($data);
        echo"var data = ".$js_data.";\n";
    ?>
    function loadCompleteTable(){

        table += '<table>';

        for(var row in data){
            table += '<tr>';
            for(var col in data[row]){
                table += '<td>';
                table += data[row][col];
                table += '</td>';
            }
            table += '</tr>';
        }

        table += '</table>';
        document.getElementById("tablePlaceholder").innerHTML = table;
    }

2 个答案:

答案 0 :(得分:1)

您可以像这样将数组从PHP传递到javascript

var js_array = JSON.parse('<?php echo json_encode($php_array); ?>');

或者,如果您愿意:

echo "var js_array = JSON.parse('".json_encode($php_array)."');";

我知道您可以使用:

var js_array = <?php echo json_encode($php_array); ?>;

但是我发现它不那么可靠。不幸的是,我在文档中找不到任何内容可以证明我在说什么,但是过去我遇到了一些麻烦,大部分是SyntaxError,这是通过使用JSON.parse来解决的,而不是仅仅回应数组作为javascript代码。

答案 1 :(得分:0)

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

    function loadCompleteTable()
    {
           var table = '';
            table += '<table>';

            for(var row in data){
                table += '<tr>';
                for(var col in data[row]){
                    table += '<td>';
                    table += data[row][col];
                    table += '</td>';
                }
                table += '</tr>';
            }

            table += '</table>';
            document.getElementById("tablePlaceholder").innerHTML = table;
        }