.load以使用file.php重新加载div

时间:2011-06-25 01:35:50

标签: php load

用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>";
?>

脚本在源代码中回显,但这不会导致页面重新加载。可能是什么问题?

5 个答案:

答案 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');