我该如何实现:
<?php
echo "<script type='text/javascript'>";
echo "document.getElementById('table_apps').innerHTML = json_encode($td_temp);";
echo "</script>";
?>
$ td_temp;
存在问题答案 0 :(得分:2)
json_encode()
是一个PHP函数
这样做
echo "document.getElementById('table_apps').innerHTML ='".json_encode($td_temp)."';";
答案 1 :(得分:2)
你可以在没有回声的情况下尝试这个
<?php
// some code
?>
<script type='text/javascript'>
document.getElementById('table_apps').innerHTML = '<?php echo json_encode($td_temp);?>';
</script>
<?php
// some code
?>
更新2:
<?php
echo "<script type='text/javascript'>";
echo "document.getElementById('table_apps').innerHTML = '".json_encode($td_temp)."';";
echo "</script>";
?>
答案 2 :(得分:1)
你最好不要从php打印所有这些html,而只打印一个变量。看起来更整洁
?>
<script type='text/javascript'>
document.getElementById('table_apps').innerHTML = <?php echo json_encode($td_temp); ?>;
</script>
<?php
答案 3 :(得分:0)
<?php
echo "<script type='text/javascript'>";
echo "document.getElementById('table_apps').innerHTML = '".json_encode($td_temp)."';";
echo "</script>";
?>
Try this.
答案 4 :(得分:-1)
至关重要:
为什么?
因为如果您要提供一个名称数组,并且您有O'Connell或其中包含引号的任何其他名称,那么innerHTML = '<?php echo json_encode...'
会因为未转义的报价而中断标记。尽可能多地进行适当的封装和验证非常重要,因为它将来证明您开发的任何应用程序,减少故障点,或者在try / catch / exception的情况下,明确定义预期的故障点。
如果要创建内容中包含分号的json对象,会发生什么?除非您将json内容包装在单引号中并正确转义它,否则它可能会被解释为当前命令的终止。因此,当您尝试输入.innerHTML='{blah:"something O'Connel;...}'
时,由于格式错误,您的Javascript会抛出错误,更不用说它无法在终止字符之前解释'Connel'。有些浏览器比其他浏览器(IE我正在看你)更松弛,并且会跳过验证或执行子标准例程,或者在IE6-8的情况下,执行错误的验证。
到目前为止,答案大多都是正确和错误的,但到目前为止,所有答案都忽略了做一件事,逃避引用:
<?php
echo "<script type='text/javascript'>";
echo "document.getElementById('table_apps').innerHTML = '" . addslashes(json_encode($td_temp)) . "';";
echo "</script>";
?>
这将是正确的: