2009-11-14 68 views
1

我希望對我的div做類似iframe的工作,我已經去了這裏。用javascript和php更改div的內容包括

<a href="#self" onClick="document.getElementById('maincontent').innerHTML = '<?php include 'file.php'; ?>';">Open file</a> 

這工作得很好,不過不幸的是,如果我做內部的另一個鏈路要改變內容:

基本上,使鏈接改變的div像這樣的內容我已經儘量得到回到第一個文件,服務器陷入無限循環並崩潰。

我真的只是想找到一些方法來動態更改內容,並從使用PHP的文件中獲取內容。如果我接近這種方式是完全荒謬的,我很欣賞建議。

回答

10

我認爲最好的和最簡單的方法就是使用jQuery:

<script type="text/javascript"> 
$('#addContent').click(function(){ 
    $("#maincontent").load("file.php"); 
    return false; 
}); 
</script> 

<a href="#" id="addContent">Open File</a> 
<div id="maincontent"></div> 

這個腳本會使用Ajax調用的file.php內容加載到選定的股利。

1

這看起來像jQuery's load()函數的好地方。只需給div一個id,在鏈接中添加一個click事件並讓事件將你的php腳本的內容加載到div中。在加載新數據時,可能會向div中附加一個類(例如「更新」)。這樣,您的點擊事件可以在div上檢查('。uploaded'),並在鏈接再次單擊時將其切換回。

1

將div放入#maincontent內部,以保存您想要的不同內容。給divs ID。當鏈接被點擊隱藏/顯示相應的內容

這是一個類似的線程:Tabbing in PHP?

1

首先,我建議不建立該事件處理程序類的。一件事你必須非常小心,你正確地逃避內容。我會這樣做:

<div id="content1"> 
<?php include 'file1.php'; ?> 
</div> 
<div id="content2"> 
<?php include 'file2.php'; ?> 
</div> 

然後用Javascript來操縱那些。你可以設置innerHTML或者簡單地隱藏/顯示相關的div。所以:

<script type="text/javascript"> 
var content = 1; 

function swap_content() { 
    document.getElementById('maincontent').innerHTML = document.getElementById('content' + content).innerHTML 
    if (content == 1) { 
    content = 2; 
    } else { 
    content = 1; 
    } 
} 
</script> 
<a href="#" onclick="swap_content();">Open File</a> 

另外,你可以只是適當地隱藏/顯示它們而不是複製內容。

最後,雖然不是必需的,但在像jQuery這樣的Javascript庫中做這件事更爲微不足道。

0

對我來說,聽起來你應該使用AJAX。在clickevent上(你也不應該用內聯代碼綁定),你會用XHR請求加載內容。

爲了讓您的生活更輕鬆我建議您查看JavaScript庫,其中我個人最喜歡的是jQuery(www.jquery.com)。要實現你正在嘗試做的事,你只需要做:

$('#id_to_the_a_tag').click(function() { 
    $("#maincontent").load("file.php"); 
    return: false; 
});