2011-10-16 69 views
0

正如你所看到的,我从我的ajax调用中检索JSON数据,但是如果数据库找不到任何东西,它将返回打印值null

e.g. print "null";

,你可以用case 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; 
} 
+1

虽然添加案例可能会解决您的问题。从服务器发送一个错误并声明一个'error:function(){}'来处理它不是一个更好的做法 – frictionlesspulley

回答

0

你可以返回null作为json($return['result'] = 'null'; in php文件)。 在您的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) { 
       [...] 
+0

我的意思是result.result!='null';.而且你应该在PHP文件中将null编码为json。读我写的东西 – OptimusCrime

0

你可以做obj.id === undefined这意味着obj.id不存在。

此外,如果你是返回json。

您可以将其添加到$.ajax"text json": jQuery.parseJSON的末尾,它将强制解析为json模式。这意味着如果解析失败,将会触发错误。

编辑:回答你的问题:

$阿贾克斯({ 类型: 'POST', 网址: '系统/班/ core.php文件', 数据:formstring, 数据类型:' JSON”, 的contentType: “应用程序/ X WWW的窗体-urlencoded;字符集= UTF-8”, 成功:功能(数据){$ 。每个(数据,功能(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 
}); 
+0

谢谢,但是我不明白json文本的东西你能否举个例子 – RussellHarrower