用 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的主要内容,如果未能解决你的问题,请参考以下文章