簡體   English   中英

用注釋掉的代碼將PHP插入HTML結果

[英]Inserting PHP into HTML Results in Commented-Out Code

我試圖通過單擊按鈕從該文件中的另一個.php文件中調用函數,但是我在Internet上的其他位置遇到了此方法,但是我不確定它是否有效。 我將PHP代碼簡化為只在屏幕上打印兩次,而不是調用另一個文件,以演示問題所在:

<?php
echo "hello";
?>
<?php
echo <<<END
<html>
<body>
<button type="button" onclick="handleButton()" id="button1">PHP Test</button>
<script type="text/javascript">
function handleButton()
{
   document.getElementById("button1").innerHTML = "PHP Test<?php echo 'HELLO';?>";
}
</script>
</body>
</html>
END;
?>

不應該在屏幕上按下按鈕打印“ HELLO”嗎? 而是將按鈕的HTML源變為:

<button type="button" onclick="handleButton()"
id="button1">
PHP Test
<!--?php echo HELLO;?-->
</button>

當單擊按鈕時,什么也沒有發生。 由於“ hello”可以正常打印,服務器為什么要注釋掉第二個php echo命令?

PS:我預計會有很多評論說:“您為什么首先要嘗試這樣做?” 我知道我可以制作一個可以提交到php文件的HTML表單,但是我的目標是在屏幕上顯示多個按鈕,每個按鈕都指向一個不同的php文件。 我知道我也可以將表單引導到單個php文件,該文件查看該屏幕上的哪個按鈕被按下,並調用適當的php文件,但是我想避免制作另一個php文件,如果這樣做的話這可以工作。 因此,除非我缺少一種更有效的方法,否則我希望我們只堅持服務器為何注釋掉該PHP代碼這一主題。 謝謝。

PHP是一種服務器端語言,在用戶獲取數據之前執行。 這意味着您無法從JavaScript調用PHP函數。 為此,您必須向PHP頁面發出AJAX請求,然后在該頁面返回結果。 另外,請確保將“ Hello ”加引號。 我建議您查找有關PHP和JavaScript的一些教程 ,這樣您就可以掌握兩者之間的交互作用,以及如何使它們按自己的意願去做。

附帶說明,字符串必須用引號引起來。

<?php echo "hello"; ?>

如果我了解您要在此處執行的操作,請嘗試以下操作:

<html>
  <body>
    <button type="button" onclick="handleButton()" id="button1">PHP Test</button>
    <script type="text/javascript">
      function handleButton()
      {
        document.getElementById("button1").innerHTML = "PHP Test <?php echo 'HELLO';?>";
      }
    </script>
  </body>
</html>

假設上面的代碼在文件“ index.php”中,並且您正在使用http://example.com/index.php請求此文件。 這將導致以下HTML發送到您的瀏覽器(您可以在加載到瀏覽器的頁面上查看是否執行“查看源代碼”):

<html>
  <body>
    <button type="button" onclick="handleButton()" id="button1">PHP Test</button>
    <script type="text/javascript">
      function handleButton()
      {
        document.getElementById("button1").innerHTML = "PHP Test HELLO";
      }
    </script>
  </body>
</html>

此時,單擊按鈕與PHP無關,因為PHP已經完成了其加載頁面的角色。 此時,如果您希望向服務器端PHP腳本發出請求,則必須使用表格,AJAX請求或IFRAME(我可以在這里繼續)。

我希望這可以使它一點點清除,但是我必須強調一個事實,即在嘗試執行此處要執行的操作之前,您應該多閱讀一些內容。

祝好運!

因為HTML沒有任何意義,它來自何處(php)-如果此值是靜態的-將其放在此處,請勿打擾從cleint端執行它,否則以任何形式使用AJAX-學習它看起來像是google

PS首先,請先學習一下網絡的工作原理-在您獲得網絡之前,它將解決此問題以及其他類似問題

您最好使用早先聲明的變量...(這已經過測試並且可以工作)

<?php
   $buttonTitle = "HELLO";
   echo 'hello';
?>

<?php
echo <<<END
<html>
<body>
<button type="button" onclick="handleButton()" id="button1">PHP Test</button>
<script type="text/javascript">
function handleButton()
{
  document.getElementById("button1").innerHTML = "$buttonTitle";
}
</script>
</body>
</html>
END;
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM