【问题标题】:Refresh a div with jQuery用 jQuery 刷新一个 div
【发布时间】: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的内容......

标签: javascript jquery html logout


【解决方案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 轻松访问注销脚本。问题是用户注销后如何刷新视图。
      猜你喜欢
      • 2012-05-06
      • 1970-01-01
      • 2015-12-11
      • 2010-12-02
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多