用 jQuery 刷新一个 div

Posted

技术标签:

【中文标题】用 jQuery 刷新一个 div【英文标题】:Refresh a div with jQuery 【发布时间】:2013-05-28 07:13:35 【问题描述】:

是否可以使用 jQuery 刷新单个 div?我有一个可以注销用户的按钮。点击按钮后,我想显示登录表单,所以需要重新解析这个div。

我的div的内容是这样的:

<div id="signup" class="register">

    <?php
        $email = $_COOKIE['email'];
        $login = $_COOKIE['login'];

        if($email != null && $email != "" && $login != null && $login != "") 
            echo "<h3>you are logged in as <b>$email</b></h3><br><br><button id='logoutbtn' class='submitButton'>Logout</button>";
         else 
            // show login form
        
    ?>

</div>

这是我执行注销的 javascript 部分:

$('#logoutbtn').click(function ()     
    $.ajax(  
        type: "POST",  
        url: "php/logout.php",  
        async: false,
        success: function(data)
            // reload signup div
         
    );  
);

编辑:我的 logout.php 脚本删除了 cookie,这就是我需要重新解析 signup-div 的原因。

【问题讨论】:

你可以在你的成功函数中使用类似$("#signup").html(data)的东西来用你的PHP脚本的输出覆盖Div的内容...... 【参考方案1】:

由于您的标签内有会话方法,您可以在成功事件上执行以下操作:

success: function(data)
        $("#signup").load(".register");
     

它将重新加载 中的所有内容,并且当您删除会话(我想)时,它将重新加载到您的登录/注销表单中。

【讨论】:

【参考方案2】:

我会尝试:

$('#logoutbtn').on('click', function ()     
    $.ajax(  
        type: "POST",  
        url: "php/logout.php"
    )
    .done(function(data)
        $('#signup > h3').html('Please <button id="loginbtn" class="submitButton">Login</button>');
    );
)

登录操作可以使用相同的方法来防止页面必须刷新。

【讨论】:

【参考方案3】:

您可以使用 jquery 动态更改注册 div 的内容,如下所示:

$("#signup").html("My New Login Section");

var $loginDiv = $(document.createElement("div")).html("<label>Username</label><input type='text' id='username'/>");
$("#signup").html($loginDiv);

【讨论】:

这不是我打算做的,但它确实有效。问题是我必须将 html 代码添加到注册表单的一个变量中,这很长。【参考方案4】:

使用load()

$('#signup').load('php/logout.php', function() 
  alert('Logout.');
);

【讨论】:

我认为 load() 在这里不是正确的方法,因为可以通过 AJAX 轻松访问注销脚本。问题是用户注销后如何刷新视图。

以上是关于用 jQuery 刷新一个 div的主要内容,如果未能解决你的问题,请参考以下文章

jquery实现无刷新显示页面内容

用 jQuery 刷新一个 div

UI组件——用jQuery做一个上拉刷新

jquery div局部刷新怎么做?

jquery如何定时 局部刷新一个div??

怎样用jquery实现新闻无闪动刷新,用js中工具箱2到3个控件,搜索文本框自动文本框自动填充完成