无法在<script>标签内回显PHP变量?

mar*_*arc 1 html javascript php json

这是我的PHP代码.我希望使用警报窗口显示错误.

 if ($projectid=="")
  {
    $error = 'You must choose a project.
              Click &lsquo;back&rsquo; and try again.';
    include error.html.php';
    exit();
  }
Run Code Online (Sandbox Code Playgroud)

这是应该由浏览器解析的error.html.php

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Script Error</title>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">


    </head>

    <body>

         <script> 
             var error = <?php echo   $error ; ?>;
              window.onload = function(){ alert(error); }
         </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Wahts with the script tags?他们阻止PHP运行吗?

Nie*_*sol 6

真正的问题是,这是你的渲染结果是这样的:

var error = You must choose a project.
            Click &lsquo;back&rsquo; and try again.
Run Code Online (Sandbox Code Playgroud)

这看起来像是有效的JavaScript吗?我想不是.

var error = <?=json_encode($error);?>;
Run Code Online (Sandbox Code Playgroud)

这应该导致:

var error = "You must choose a project.\r\n                 Click &lsquo;back&rsquo; and try again.";
Run Code Online (Sandbox Code Playgroud)

好多了.