[英]Pass JSON from JQuery.load('file.php') after on file.php refresh?
[英].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.