我写了一个工具,可以用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;
}
答案 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;
}