簡體   English   中英

.load用file.php重新加載div

[英].load to reload a div with file.php

用php文件重新加載div的方式是什么。 我在HTML頁面中定義了這樣的div。

的HTML

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

我有一個PHP文件,該文件執行數據庫操作,然后在div上調用load方法以重新加載。

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

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

我正在做類似的事情,我需要在一個頁面上有多個div,並將GET變量傳遞給包含的div,然后當觸發被觸發時,我需要分別用jQuery重新加載每個單獨的div(在這種情況下,關閉一個colorbox圖片上傳)。 如果對任何人有幫助,這就是我的做法:

在主腳本中,我聲明了多個div,每個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事件更有效地完成了這一點。):

<script>                
window.onload = function(){
   <?php
   for($i=1;$i<11;$i++)
   {
    ?>
    $("#imgdiv<?php echo $i; ?>").load('php/show-img.php?id=<?php echo $i; ?>&name=<?php echo $name; ?>');      
    <?php
   }
   ?>
}
</script>

最后,我希望每個div在觸發相關觸發器時獨立於其他div重新加載。 在這種情況下,我的觸發器是一個關閉的顏色框,因此我為所需的每個觸發器分配了一個顏色框實例,並將onClosed觸發器與每個div的函數綁定在一起。 由於為每個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>

無論是否將其封裝在顏色盒觸發行中,該功能都是相同的。

我意識到這是一個巨大的職位,遠遠超出了您的實際要求,但是我花了數周的時間來尋找這樣的解決方案,但無法解決問題,因此希望對您有所幫助!

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

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

如果您添加應在頁面加載時執行的內容,請按照這種方式執行

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

所以就你而言

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

嘗試這個

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

不得不將div更改為iframe,然后像這樣重新加載iframe。

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

暫無
暫無

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

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