用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>";
?>
脚本在源代码中回显,但这不会导致页面重新加载。可能是什么问题?
答案 0 :(得分:1)
我做了类似的事情,我需要在一个页面上有多个div,GET变量传递给包含的div,然后我需要在触发器触发时用jQuery分别重新加载每个div(在这个实例中关闭一个颜色框) ,图像上传后)。如果对任何人有任何帮助,我就是这样做的:
在主脚本中,我声明了多个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重新加载。在这种情况下,我的触发器是一个彩色盒被关闭,所以我为每个需要的触发器分配了一个colorbox实例,并将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>
无论是否包含在彩盒射击线中,该功能都是相同的。
我意识到这是一个巨大的帖子而且比你实际要求的更多,但我花了几周的时间寻找这样的解决方案并且不能很好,所以希望这会帮助别人!
答案 1 :(得分:0)
PHP在页面加载之前在服务器端执行。页面加载后,PHP无法访问该页面。你应该考虑使用JavaScript(或jQuery?)来重新加载页面,具体取决于你特别想要做的事情。
在脚本输出中添加倒数计时器,以使用JavaScript重新加载页面。
答案 2 :(得分:0)
如果添加应在页面加载时执行的内容,请按照这种方式执行
$(function(){
/* your content */
});
所以在你的情况下,
echo "<script type='text/javascript'>
$(function(){
$('#tnav').load('loadtree.php');
});
</script>";
答案 3 :(得分: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
答案 4 :(得分:0)
必须将div更改为iframe,然后像这样重新加载iframe。
$('#tnav').attr('src','loadtreeb.php');