使用jquery在同一页面中与php通信(如果设置了cookie)

时间:2012-08-04 01:06:42

标签: php jquery session cookies session-cookies

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

谢谢!

2 个答案:

答案 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);
           }