繁体   English   中英

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

[英]How can I use an array I created with php in a js function

我写了一个工具,它在 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;
    }

您可以像这样将数组从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代码来解决的。

    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;
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM