我有一个框架.php页面
if(isset($_COOKIE['user'])){
// do some stuff
}else{
// login script
}
在jquery.frame.php页面中
$("#infm_login_button").live("click",function(){
$.ajax({
url: "urltologinformacceptance",
type:"POST",
data: $("#login").serialize()
}).done(function(data){
//do stuff
});
return false;
});
现在,在同一frame.php中,我如何让jquery告诉用户,哦,用户已经登录,是的,继续进入// do some stuff
部分。但是,我不希望用户刷新页面。我希望它只在用户登录时将内容从// login script
更改为// do some stuff
,而不刷新页面。有没有办法让jquery与frame.php和cookie
对话?
谢谢!
首先:自从jQuery 1.4或其他版本以来,live已被弃用。请改用.on()。
其次,当ajax调用完成时,您不想"做"某些事情,但当它成功时。如果有时间呢?试试这个:
$.ajax({
type : 'POST',
url : 'url.php',
data: $("#login").serialize(),
success : function(data){
$(document).html(data);
}
});
这将把url.php的输出打印到整个文档中,有点像php中的include()。
除了Djerro Neth的回答。回显已登录用户的输出(菜单、链接等)
if(isset($_COOKIE['user'])){
// do some stuff
echo "Welcome back ".$_COOKIE['user']."!";
}else{
// login script
}
并使用jQuery用frame.php返回的新内容覆盖登录表单中的div。
success : function(data)
{
$("#loginspace").html(data);
}