我有一个 frame.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进行对话/ strong>和cookie
?
谢谢!
答案 0 :(得分:0)
首先:自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()。
答案 1 :(得分:0)
除了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);
}