2011-06-25 42 views
0

什麼是重新加載一個PHP文件的方式。我在HTML頁面中有一個像這樣定義的div。.load重新加載一個div與file.php

HTML

<div id="tnav" 
    <?php require("loadtree.php"); ?> 
</div> 

我有peforms數據庫操作則呼籲div來重新加載負荷方法的PHP文件。

<?php 
. 
. 
. 
echo "<script type='text/javascript'> $('#tnav').load('loadtree.php'); </script>"; 
?> 

該腳本在源代碼中回顯,但這不會導致頁面重新加載。可能是什麼問題呢?

+0

您使用[螢火蟲](http://getfirebug.com/)?首先檢查'load'調用是否實際發送,然後檢查從服務器發回的數據的狀態。服務器可能會返回某種錯誤,在這種情況下#tnav不會被更新。 – declan

回答

0

在頁面加載之前,PHP在服務器端執行。頁面加載後,PHP無法訪問該頁面。您應該考慮使用JavaScript(或jQuery?)重新加載頁面,具體取決於您正在嘗試執行的操作。

在腳本輸出中添加倒數計時器以使用JavaScript重新加載頁面。

+0

PHP輸出該

0

如果你把你的內容應該在頁面加載執行,做這種方式

$(function(){ 
    /* your content */ 
}); 

所以你的情況,

echo "<script type='text/javascript'> 
         $(function(){ 
           $('#tnav').load('loadtree.php'); 
         }); 
     </script>"; 
+0

f我按照你的建議更新echo語句,該函數顯示在視圖源中,但不會重新加載div。 – Martine

+0

和我給出的代碼顯示在ajax加載頁面或默認頁面? – genesis

+0

該代碼顯示在我加載php頁面的iframe的視圖源中。主頁面的查看源在調用php頁面之前有什麼。 – Martine

0

試試這個

echo "<script type='text/javascript> 
    $(document).ready(function() { 
     $('#tnav').load('loadtree.php'); 
    }); 
</script>"; 

或者,如果你想讓你的代碼更具可讀性,可以在php標籤之外編寫腳本,以便突出顯示語法。

?> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#tnav').load('loadtree.php'); 
    }); 
</script> 
<?php 
+0

,似乎也沒有做到這一點。您建議的代碼在加載php的iframe的視圖源中顯示。 – Martine

0

只好將div更改爲iframe,然後像這樣重新加載iframe。

  $('#tnav').attr('src','loadtreeb.php'); 
1

我在做類似的事情,我需要有傳遞到包含div的GET變量在一個頁面上多個div,然後我需要用jQuery格設置單獨加載每個人當觸發被解僱(關閉在這種情況下,圖像上傳後的顏色框)。如果它是任何人任何幫助,這是我做的:

在主腳本我宣佈多個div,每個由施工迴路中產生一個唯一的ID:

for($i=1;$i<$filecount+1;$i++) 
{ 
?>    
    <div class="someclass" style="width:100%"> 
     <div id="imgdiv<?php echo $i; ?>"> 
     </div> 
    </div> 
    <?php 
    //assign a colorbox link to each to trigger colorbox to open that specific instance (and thus fire that specific trigger when closed) - class="iframe[#]" is used by colorbox to fire. ?> 
    <a class="iframe<?php echo $i; ?>" href="add-new-img.php?id=<?php echo $id; ?>&imgno=<?php echo $i; ?>">Edit Image <?php echo $i; ?></a> 
} 

接下來我用另一個環路初始化JS的onload事件(現在這一點我覺得可以更有效地比使用10個單的onload事件做了..):

​​

最後,我想每個div來獨立於其他重載時的相關觸發器被解僱。在這種情況下,我的觸發器是一個關閉的colorbox,所以我爲每個我需要的觸發器分配一個colorbox實例,並將onClosed觸發器綁定到每個div的函數。由於每個格有一個唯一的名稱分配給它,我能做到這一點,如下所示:

<script> 
    $(document).ready(function(){ 
    //Assign an individual colorbox instance to each div 
    <?php for($i=1;$i<$filecount+1;$i++) 
    { ?> 
     $(".iframe<?php echo $i; ?>").colorbox({iframe:true, width:"90%", height:"90%", opacity:.8, fixed:true, overlayClose:false, onClosed:function(){$('#imgdiv<?php echo $i; ?>').fadeOut('slow', function(){  
     $("#imgdiv<?php echo $i; ?>").load('php/show-img.php?id=<?php echo $i; ?>&name=<?php echo $name; ?>');   
     $('#imgdiv<?php echo $i; ?>').fadeIn('slow');}); 
     }}); 
     <?php 
    } ?>   
    }); 
</script> 

的功能是一樣的顏色框火線與否是否包裹。

我意識到這是一個巨大的職位和超過你居然問了,但我花了幾周時間尋找這樣一個解決方案,不能罰款之一,所以希望這會幫助別人!

相關問題