繁体   English   中英

在echo内的javascript中插入php

[英]Insert php in javascript inside echo

我在echo中有我的Javascript,但我希望它在PHP中也有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>";
        } 
?>

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

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

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>";
}

只需回显其他部分。

顺便说一句,您可以将'用作回显,这样就不必在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>';
  }

首先,您需要了解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
        } 
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM