jquery / javascript根据会话加载不同的内容

时间:2015-11-11 20:48:34

标签: javascript jquery

嘿伙计们,我在这里有这个代码:

    $('#internet').click(function(e){
        e.preventDefault();
        $.ajax({
            url: "ajax/sessionset.php",
                success: function (data){
                    if (data == 1){
                        $.ajax({
                            type: "POST",
                            //add variables
                            url: "ajax/loggedin.php",
                            success: function(data2){
                                //history.pushState({"internet.php?view=internetlog");
                                $('#internetlog').html(data2);


                    }
                        });
                    }    
                    else if(data===0){
                         alert("suka");

                        }

                } 

    });
});

sessionset.php返回值1或0,具体取决于会话当前是否正在进行。

这里的问题是链接$(' #internet') 当数据值为1时,返回url loggedin.php。 但是,如果数据值为0,则没有任何反应,因为e.preventDefault();防止任何事件。

已经在firebug上检查过它返回1或0的值,我不明白为什么当返回的值为0时警报没有被触发...

编辑:刚刚在一个单独的窗口中检查了sessionset.php而不是firebug

<?php
session_start();

if (!empty($_SESSION['origuserip'] && $_SESSION['loggedin'])){

    $switch = "1";
}   

else {
    $switch = "0";
}

echo $switch;

返回值1为1但是如果!empty为false则返回

Notice: Undefined index: origuserip in ajax\sessionset.php on line 4
0

解决方案:

猜猜最简单的方法就是最好的方法-_-

    else {
("suka");

  }

1 个答案:

答案 0 :(得分:0)

脚本返回值可能是一个字符串,因为您没有指定AJAX调用的返回类型。

您应该这样验证:data==="1"data==="0"。只要您确实返回字符串,就会检查身份。

data==1始终为true,如果已设置且不是null

关于另一个问题:

检查索引并分隔$_SESSION检查时,请确保已正确设置empty()个变量。例如:

    if (!empty($_SESSION['origuserip']) && !empty($_SESSION['loggedin'])){
        $switch = "1";
    }   
    else {
        $switch = "0";
    }

    echo $switch;