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