0

我在 echo 中有我的 Javascript,但我希望它里面也有一个 php。我不知道是否可能,只是想知道正确的方法。干杯。

<?php  
      if($_GET["main"]=="add-doc"){
            echo "<script> 
                       var r=confirm(\"Press a button\");
                       if (r==true)
                       {
                           <? require_once(\"doc_add.php\"); ?> <--- PHP here
                       }
                       else
                       {
                           x=\"You pressed Cancel!\";
                       }
                       </script>";
        } 
?>
4

4 回答 4

1

从技术上讲,包括 HTML 或 CSS 或 JavaScript 中的 PHP 没有区别。HTML 是静态的。CSS 和 JavaScript 是补充 HTML 的客户端动态语言。它们向 HTML 添加了 PHP 或任何其他服务器端语言无法在服务器端执行的功能。

这就是为什么在 JavaScript 中使用 PHP 被认为是一种反模式。CSS 和 JavaScript 应该执行服务器端无法控制的操作。因此,这些操作的所有信息都应该是客户端的。当可以在 PHP 页面中找到 JavaScript 代码时,维护会更加困难。而是创建一个 .js 文件,进行函数调用,返回 doc_add.php 中的内容并继续执行。

于 2013-06-06T08:00:55.700 回答
0
if($_GET["main"]=="add-doc"){
    echo "<script>
               var r=confirm(\"Press a button\");
                       if (r==true)
                       {
                           " . require_once('doc_add.php') . "  
                       }
                       else
                       {
                           x=\"You pressed Cancel!\";
                       }
          </script>";
}
于 2013-06-06T07:37:43.167 回答
0

只需回应附加部分。

顺便说一句,您可以使用'for echo 这样您就不必"在 javascript 中转义。(虽然"'PHP 中的引号略有不同,但在这种情况下它可以正常工作。)或者您可以'在 javascript 中使用。

<?php  
  if($_GET["main"]=="add-doc"){
    echo '<script> 
         var r=confirm("Press a button");
         if (r==true)
         {';
    require_once("doc_add.php");
    // Make sure the file returns valid javascript
    echo '}
         else
         {
             x="You pressed Cancel!";
         }
         </script>';
  }
于 2013-06-06T07:38:18.627 回答
0

首先你需要了解PHP是服务器端脚本,而javascript是客户端脚本。这意味着一旦 PHP 脚本完成了 HTML 文件的渲染,它就不能再做任何动作了。

您可以做的是在 javascript 运行之前动态呈现 javascript 内容。

在你的情况下:

<?php  
      if($_GET["main"]=="add-doc"){ ?>
           <script> 
                       var r=confirm("Press a button");
                       if (r==true)
                       {
                           <? require_once(\"doc_add.php\"); ?>
                       }
                       else
                       {
                           x="You pressed Cancel!";
                       }
                       </script>
           <?php
        } 
?>
于 2013-06-06T07:40:44.677 回答