簡體   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