如何在php代码中的javascript代码中使用php变量?

时间:2014-04-19 05:59:28

标签: javascript php echo json

我该如何实现:

<?php
    echo "<script type='text/javascript'>";
    echo "document.getElementById('table_apps').innerHTML = json_encode($td_temp);";
    echo "</script>";
?>

$ td_temp;

存在问题

5 个答案:

答案 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)

至关重要:

  1. 将编码的json字符串封装在引号
  2. 转义任何编码的json字符串
  3. 为什么?

    因为如果您要提供一个名称数组,并且您有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>";
    ?>
    

    这将是正确的:

    1. 转义引号,
    2. 生成json编码的对象