正如您所看到的,我正在从我的ajax调用中检索JSON数据,但如果数据库找不到任何内容,则会返回null
的打印值。
e.g。
print "null";
正如您在案例1中看到的那样,我已经问过它是否找不到obj.id
然后显示这个。
然而,由于没有返回JSON,它应该是if(data == "null")
但是当我这样做时它似乎也可以工作。
我基本上需要注意它找不到它,并停止脚本。
这是我的jquery代码。
function fetch(e,formstring)
{
$.ajax({
type: 'POST',
url: 'system/classes/core.php',
data: formstring,
dataType: 'json',
contentType: "application/x-www-form-urlencoded;charset=utf-8",
success: function(data){
$.each(data, function(i, obj) {
switch (e) {
case 1:
if(!obj.id)
{
shownotify(1,"Sorry An error was found. Check Username / Password.");
alert("error");
shownotify(2,"");
return false;
}
$.each(obj, function(key, val) {
alert(key+" - "+val);
});
break;
case 2:
$.each(obj, function(key, val) {
if(val != 0)
{
$("#betataken").html("<span style='color:red'><b>"+betacode+"</b> - NOT VALID");
}
else
{
$("#betataken").html('<img src="theme/sysimages/tick.png"/><span style=" color: white;"><b>'+betacode+'</b> is valid</span');
}
});
break;
case 3:
$.each(obj, function(key, val) {
if(val != 0)
{
$("#usernametaken").html("<span style='color:red'><b>"+username+"</b> - is taken");
}
else
{
$("#usernametaken").html('<img src="theme/sysimages/tick.png"/><span style=" color: white;"><b>'+username+'</b> is valid</span');
}
unamecheck = val;
});
break;
case 4:
//LoginSript
$('#rightheader').html(obj.code);
break;
case 5:
//WelcomePage/Signup
$('#window').html(obj.code);
break;
}
});
},
error: function(data){
$.each(data,function(i,myinfo){
alert(i);
});
},
complete: function(){
shownotify(2,"");
}
});
return false;
}
答案 0 :(得分:0)
您可以执行obj.id === undefined
这意味着obj.id
不存在。
如果你要回json。
您可以添加到$.ajax
"text json": jQuery.parseJSON
的末尾,它会强制解析为json模式。这意味着如果解析失败,将触发错误。
编辑:回复您的问题:
$。AJAX({ 类型:'POST', url:'system / classes / core.php', data:formstring, dataType:'json', contentType:“application / x-www-form-urlencoded; charset = utf-8”, 成功:函数(数据){ $ .each(data,function(i,obj){
switch (e) {
case 1:
if(!obj.id)
{
shownotify(1,"Sorry An error was found. Check Username / Password.");
alert("error");
shownotify(2,"");
return false;
}
$.each(obj, function(key, val) {
alert(key+" - "+val);
});
break;
case 2:
$.each(obj, function(key, val) {
if(val != 0)
{
$("#betataken").html("<span style='color:red'><b>"+betacode+"</b> - NOT VALID");
}
else
{
$("#betataken").html('<img src="theme/sysimages/tick.png"/><span style=" color: white;"><b>'+betacode+'</b> is valid</span');
}
});
break;
case 3:
$.each(obj, function(key, val) {
if(val != 0)
{
$("#usernametaken").html("<span style='color:red'><b>"+username+"</b> - is taken");
}
else
{
$("#usernametaken").html('<img src="theme/sysimages/tick.png"/><span style=" color: white;"><b>'+username+'</b> is valid</span');
}
unamecheck = val;
});
break;
case 4:
//LoginSript
$('#rightheader').html(obj.code);
break;
case 5:
//WelcomePage/Signup
$('#window').html(obj.code);
break;
}
});
},
error: function(data){
$.each(data,function(i,myinfo){
alert(i);
});
},
complete: function(){
shownotify(2,"");
},
"text json": jQuery.parseJSON
});
答案 1 :(得分:0)
你可以在php文件中以json($return['result'] = 'null';
)的形式返回null。
在你的js:
[...]
dataType: 'json',
contentType: "application/x-www-form-urlencoded;charset=utf-8",
success: function(data){
result = jQuery.parseJSON(data);
if (result['result'] != 'null') {
$.each(data, function(i, obj) {
[...]