如何在javascript中插入PHP代码段

时间:2010-05-19 07:46:01

标签: php javascript

我的代码 -

<?php
session_start();
$_SESSION['errors']="failed";
?>


<head>

    function myfunc()
    {        
         alert(<?php echo $_SESSION['errors']; ?>);
    }
</head>

<body onload="myfunc();">

但警告信息没有弹出。

4 个答案:

答案 0 :(得分:7)

代码中有两个错误:

  • 您缺少<script>代码
  • 您在警告
  • 中缺少单/双引号

试试这个:

<?php
session_start();
$_SESSION['errors']="failed";
?>


<head>

<script>
    function myfunc()
    {        
         alert('<?php echo $_SESSION["errors"]; ?>');
    }
</script>
</head>

您可能希望将myfunc()置于window.load事件或某个click事件中进行测试。此外,正如ThiefMaster正确建议的那样,您可能希望在addslashes中使用$_SESSION["errors"]函数。{/ p>

注意:假设代码的文件扩展名为 php

答案 1 :(得分:2)

PHP将打印出failed,它不会打印出字符串分隔符,因此请确保将它们放入:

function myfunc()
{        
     alert("<?php echo $_SESSION['errors']; ?>");
}

答案 2 :(得分:2)

事实上,在javascript中插入PHP代码片段是不可能的。因为它是无意义的JS引擎不懂PHP 您只能使用PHP 生成整个javascript。

所以,要提出这样的问题,你必须提供

  1. 您想要获得的确切javascript代码。
  2. 输入数据的示例
  3. 和您自己的代码执行结果,与[1]
  4. 相比

答案 3 :(得分:1)

此外,你应该确保你的php输出不包含任何破坏javascript字符串的内容:

function myfunc()
{        
     alert('<?php echo addcslashes($_SESSION['errors'], "'/\\"); ?>');
}

请注意,我也转义正斜杠以确保</script>不会结束脚本标记(除了转义正斜杠以防止这种情况之外没有其他好方法。)