2013-06-04 41 views
-1

我正嘗試通過使用javascript在html標記內創建php腳本。它的想法是,當用戶點擊一個按鈕時,會觸發這種類型的PHP腳本來產生並確定從數據庫訪問的內容。使用javascript在html中生成php

我遇到的問題是無論何時執行javascript,寫入的php都會像<!--?php [code] ?-->那樣被註釋掉。雖然我有意在JavaScript上是這樣的<?php [code] ?>

因此,您可以看到標籤從腳本更改爲評論html標籤。

JavaScript代碼

function determineDisplay(display_id) { 
    var phpO = "<?php echo "; 
    var phpF = "read_home('" + display_id + "', '"; 
    var phpE = "'); ?>"; 

    var type = []; 
    type[0] = "content_desc"; 
    type[1] = "content_img"; 
    var imgpath = "images/; "; 
    type[2] = "content_comp"; 

//The alerts are to check what is inserted afterwords. 

    document.getElementById(type[0]).innerHTML = phpO + phpF + type[0] + phpE; 
alert(document.getElementById(type[0]).innerHTML); 
    document.getElementById(type[1]).src = phpO + imgpath + phpF + type[1] + phpE; 
alert(document.getElementById(type[1]).src); 
    document.getElementById(type[2]).innerHTML = phpO + phpF + type[2] + phpE; 
alert(document.getElementById(type[2]).innerHTML); 
} 

HTML代碼(在HTML有一個默認的PHP,但通過使用JavaScript,它被改變。

<table width="696px" border="1"> 
    <tr> 
     <td><font size="-1" id="content_desc"> 
      <?php read_home('a', 'content_desc'); ?> 
     </font></td> 
     <td> 
     <img id="content_img" src='<?php echo "images/"; read_home('a', 'content_img'); ?>' /> 
     </td> 
    </tr> 

    <tr><td colspan="2" align="center"><font size="-1" id="content_comp"> 
     <?php read_home('a', 'content_comp'); ?> 
    </font></td></tr> 
</table> 

我試圖完成這是根據用戶點擊的按鈕,生成read_home() php函數的第一個參數。

**html buttons using javascript for php** 
    <input type="button" id="s" class="support" onclick="determineDisplay('s');"/> 
    <br /> 
    <input type="button" id="a" class="about" onclick="determineDisplay('a');"/> 
    <br /> 
    <input type="button" id="m" class="mission" onclick="determineDisplay('m');" /> 
    <br /> 
    <input type="button" id="v" class="vission" onclick="determineDisplay('v');" /> 
    <br /> 
+3

PHP是服務器端,JS是瀏覽器端.. – techfoobar

+8

PHP代碼運行在服務器端。 Javascript運行在客戶端。你不能執行Javascript生成的PHP代碼。在Javascript運行時,PHP完成執行。 – showdev

+2

你確實意識到這是行不通的,因爲你擁有它是正確的?這個問題有很多錯誤,直到使用''標籤。 – j08691

回答

1

對此的解決方案是使用ajax。當你使用JavaScript時,它的處理是在瀏覽器端完成的,而你正在嘗試生成基於瀏覽器端渲染的php,這是不可能的,因爲php是服務器端預處理器。

由於@ waldol1表示您可以使用Ajax並調用異步請求來與服務器/數據庫交互。

+0

謝謝你,我會檢查發佈的鏈接。 – user2337345

1

PHP是超文本預處理程序。 Javascript已在頁面處理後使用。因此,爲什麼你不能用Javascript插入PHP標籤和腳本。

祝你好運。

編輯:

作爲另一個答覆中提到,您可以使用Ajax加載後運行的腳本。 他給w3schools.com AJAX例如

也許我建議使用jQuery庫:http://api.jQuery.com

3

它的想法是,當用戶:http://www.jQuery.com

你可以找到API文檔點擊一個按鈕,即 將觸發該類型的php腳本來產生並確定從數據庫中訪問的 。

你想要做的就是使用ajax。當用戶點擊你的按鈕時,你可以向你的服務器發出一個異步請求,然後你的服務器可以在你的數據庫中查找並返回結果到瀏覽器(它可以把它們交給一個javascript函數),而不用重新加載頁面。

http://www.w3schools.com/ajax/

+0

引用ajax的好工作。我可以補充說,更好的方法是使用jQuery庫。 $ .Ajax可以在http://api.jquery.com/jQuery.ajax/ – Mic1780

+0

找到,謝謝,我同意使用JQuery庫更容易。我只是想,如果OP不理解服務器和客戶端的差異,他需要在進入JQuery文檔之前閱讀w3教程或其他教程。 – waldol1

+0

同意。做得好。 +1 – Mic1780