开发者

Page getting redirected before ajax completion

开发者 https://www.devze.com 2023-03-22 05:47 出处:网络
i use ajax to create a session and to redirect the page when the user clicks on a button like this .. im using this in the facebook api(using the api to create a session with the user.id)

i use ajax to create a session and to redirect the page when the user clicks on a button like this .. im using this in the facebook api(using the api to create a session with the user.id)

    FB.login(function(response) {
            if (response.session) {
                FB.api('/me', function(user) {
                if (user!=null) {
                    var request = new XMLHttpRequest();         
                    if(document.getElementById("ans2").value==""){
                        document.getElementById("belowbutton2").innerHTML ="Don't leave it blank!!";
                    }
                    else{
                        var request2 = new XMLHttpRequest();

                        request.onreadystatechange=function(){

                            if(request.readyState==4 && request.status==200){
                                    document.getElementById("debugger").innerHTML = request.responseText;
                                    window.location = "weekques/weekques.php";
                                }
                        }
                        var uid = user.id;   
                        alert(uid);     
                        var jqXHR = ($.ajax)({url:"sessions.php?uid="+uid,
                                            async:false,
                                            cache: false,
                                            timeout: 30000,
                                            error:function(){
                                                window.location = "http://www.xyz.com";
                                            },
                                            success:function(){
                                                    request.open("GET", "weekques/answer.php?ans="+document.getElementById("ans2").value, true); //+"&qid="+qidjs
                                            开发者_如何转开发        request.send();
                                                }
                                            });



                        }
                     }
                 });
            } 
        });

but the problem is that the window is redirecting before the session is created .. heres the

sessions.php file

    <?php

    session_start();


    require_once("connection.php");
    $user=mysql_query("SELECT * from `thebirbals`.`FBusers` where uid='$uid';");


    $row_count=mysql_num_rows($result);


        $_SESSION['uid']=$_GET["uid"];
        $uid = $_SESSION['uid'] ;


    if($row_count==1){

        $_SESSION['name'] = $check["name"];
        $_SESSION['profile_link'] = $check["profile_link"];
        $_SESSION['dp'] = $check["dp"];
    }

    else{


        require_once('facebook/src/facebook.php');

        $facebook = new Facebook(array(
         'appId'  => '1550598824560526',
         'secret' => '4cf28242b5abfa26be8fd3e2074e5724',
         'cookie' => false
         ));


         $fql = "SELECT first_name,profile_url,pic_small from user where uid=$uid";

         $response = $facebook->api(array(
         'method' => 'fql.query',
         'query' =>$fql,
         ));


         foreach($response as $val)
         {

            $_SESSION['name']=$val["first_name"];
            $_SESSION['dp']=$val["pic_small"];
            $_SESSION['profile_link']= $val["profile_url"];

            $name = $val["first_name"];
            $profile_link = $val["profile_url"];
            $dp = $val["pic_small"];
            echo "done";

        }

        $insert=mysql_query("INSERT INTO  `thebirbals`.`FBusers` ( `uid`, `name`, `profile_link`, `dp`) VALUES ('$uid', '$name', '$profile_link', '$dp');");


    }   
?>

i want to redirect after the sessions.php is finished running this does not happen

ty in advance for any help .. :)


I took a stab. Not sure if this will fix your issue entirely, but take it as a starting point:

FB.login(function (response) {
    if (response.session) {
        FB.api('/me', function (user) {
            if (user != null) {
                if (document.getElementById("ans2").value == "") {
                    document.getElementById("belowbutton2").innerHTML = "Don't leave it blank!!";
                }
                else {
                    var uid = user.id;
                    alert(uid);
                    $.ajax({ url: "sessions.php?uid=" + uid,
                        async: false,
                        cache: false,
                        timeout: 30000,
                        error: function () {
                            window.location = "http://www.xyz.com";
                        },
                        success: function () {
                            $.get("weekques/answer.php", $.param({ "ans": document.getElementById("ans2").value }), function (data) {
                                alert("Answer received");
                                document.getElementById("debugger").innerHTML = data;
                                window.location = "weekques/weekques.php";
                            });
                        }
                    });
                }
            }
        });
    }
});
0

精彩评论

暂无评论...
验证码 换一张
取 消