检查AJAX响应数据是否为空/空/空/未定义/ 0

时间:2014-05-25 02:03:08

标签: javascript jquery ajax null

我拥有的:

我有jQuery AJAX函数,在查询数据库后返回HTML。根据查询结果,函数将根据需要返回HTML代码或不返回任何内容(即空白)。

我需要什么:

我需要有条件地检查数据何时为空白。

我的代码:

$.ajax({
    type:"POST",
    url: "<?php echo admin_url('admin-ajax.php'); ?>",
    data: associated_buildsorprojects_form,
    success:function(data){
        if(!data){  
        //if(data="undefined"){
        //if(data==="undefined"){
        //if(data==null){
        //if(data.length == 0){
        //if ( data.length != 0 ){
        //if(data===0){
        //if(data==="0"){   
            alert("Data: " + data);
        }
    },
    error: function(errorThrown){
        alert(errorThrown);
        alert("There is an error with AJAX!");
    }               
});

我的问题:

我尝试了各种条件但没有正确检查数据。根据我的发现,空白警报消息并不意味着数据

  1. 不存在
  2. 等于零
  3. 长度为零
  4. 未定义
  5. 如果不是这些,我怎么能有条件地检查产生空白警报信息的数据呢?

6 个答案:

答案 0 :(得分:77)

Felix Kling的问题评论部分提供了以下正确答案:

if (!$.trim(data)){   
    alert("What follows is blank: " + data);
}
else{   
    alert("What follows is not blank: " + data);
}

答案 1 :(得分:25)

//if(data="undefined"){

这是一个赋值语句,而不是比较。此外,"undefined"是一个字符串,它是一个属性。检查它是这样的:if (data === undefined)(没有引号,否则它是一个字符串值)

如果未定义,则可能返回空字符串。您可以尝试检查falsy之类的值if (!data)以及

答案 2 :(得分:12)

if(data.trim()==''){alert("Nothing Found");}

答案 3 :(得分:4)

这形成了我... 页面上的PHP代码.php

 $query_de="sql statements here";
 $sql_de = sqlsrv_query($conn,$query_de);
      if ($sql_de)
      {
        echo "SQLSuccess";
       }
         exit();

然后AJAX代码吼叫

jQuery.ajax({
                    url  : "page.php",
                    type : "POST",
                    data : {
                            buttonsave   : 1,
                            var1         : val1,
                            var2         : val2,
                              },
                  success:function(data)
                           {
                     if(jQuery.trim(data) === "SQLSuccess")
                                   {
                           alert("Se agrego correctamente");
                          // alert(data);
                                      } else { alert(data);}
                              },
                   error: function(error)
                           {
                    alert("Error AJAX not working: "+ error );
                              } 
               }); 

注意:单词&#39; SQLSuccess&#39;必须从PHP收到

答案 4 :(得分:3)

$.ajax({
    type:"POST",
    url: "<?php echo admin_url('admin-ajax.php'); ?>",
    data: associated_buildsorprojects_form,
    success:function(data){
        // do console.log(data);
        console.log(data);
        // you'll find that what exactly inside data 
        // I do not prefer alter(data); now because, it does not 
        // completes requirement all the time 
        // After that you can easily put if condition that you do not want like
        // if(data != '')
        // if(data == null)
        // or whatever you want 
    },
    error: function(errorThrown){
        alert(errorThrown);
        alert("There is an error with AJAX!");
    }               
});

答案 5 :(得分:0)

如果您使用响应而不是使用响应,那么您将获得从PHP回显的所有内容。希望这有帮助