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

jquery / javascript Load different content depending on session

本文关键字:加载 会话 javascript jquery      更新时间:2023-09-26

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

    $('#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");
                        }
                } 
    });
});

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

这里的问题是链接 $('#internet'(当数据值为 1 时.php返回登录的 URL。但是,如果数据值为 0,则不会发生任何反应,因为 e.preventDefault((;防止任何事件。

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

编辑:刚刚检查了会话集.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");
  }

脚本返回值可能是一个字符串,因为您没有指定 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;