1

我有一个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.phpcookie

谢谢!

4

2 回答 2

0

首先:live 自 jQuery 1.4 或其他版本以来已被弃用。使用 .on() 代替。

其次,当 ajax 调用完成时,您不想“做”某事,而是当它成功时。如果有超时怎么办?试试这个:

                $.ajax({
            type : 'POST',
            url : 'url.php',
            data: $("#login").serialize(),

            success : function(data){
                $(document).html(data);
            }


                });

这会将 url.php 的输出打印到整个文档,有点像 php 中的 include()。

于 2012-08-04T01:24:24.890 回答
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);
           }           
于 2012-08-04T05:31:12.423 回答