2014-09-25 89 views
-1

我有很多的div的,可能是十幾或二,像...如何將PHP文件包含這取決於用戶選擇

<div class="mydivs" id="firstdiv"></div> 
<div class="mydivs" id="seconddiv"></div> 
<div class="mydivs" id="thirddiv"></div> 
<div class="mydivs" id="forthdiv"></div> 
<div class="mydivs" id="fifthdiv"></div> 

當用戶點擊在任何這些div上,我想加載獨特的php文件,名字像(this.id).php到這些div中。

$(".mydivs").click(function(){ 
    $(this).html("<?php include " + this.id + ".php ?>"); 
}); 

這怎麼可能?

+0

你需要使用AJAX來做到這一點 – 2014-09-25 06:00:07

+0

你能解釋一下嗎? – Tom 2014-09-25 06:02:33

+0

PHP是服務器端,JavaScript是客戶端。當你到達javascript時,頁面的PHP已經被服務器加載並交付。所以,我猜你希望這些包含在另一個頁面加載? – 2014-09-25 06:03:47

回答

2

既然你已經使用jQuery,你可以這樣做

$(".mydivs").click(function() { 
    var that = this; 
    $.get(this.id + ".php", function(data, status) { 
     $(that).html(data); 
    }; 
}); 

這是異步,所以您可能還需要一個小的微調或證據,表明是一些被加載。

這也將消除任何安全問題。例如,如果今天的代碼是從用戶輸入中讀取的,例如getFile.php?file=1.php,那麼您將遇到問題。如果文件不存在,上面的當前代碼將簡單地返回404。它不是including,它只是通過AJAX獲取頁面,瀏覽器可以在沒有此代碼的情況下執行該頁面。

+0

非常感謝。有效。 – Tom 2014-09-25 06:32:49

1

我不太確定這是安全的。您不應該使用用戶輸入來選擇PHP include的文件。用戶的請求很容易被操縱 - 它們可能包含一個你不想讓它們訪問的腳本,或者如果服務器配置不當,它們會將自己的PHP文件包含惡意代碼。

如果您只想加載其他頁面,請改用AJAX,並始終檢查請求的資源是否是您希望用戶查看的資源。