web-dev-qa-db-ja.com

AJAX応答データが空/空白/ null / undefined / 0であるかどうかを確認します

私が持っているもの:

データベースのクエリ後にHTMLを返すjQuery AJAX関数があります。クエリの結果に応じて、関数は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. undefined

これらのいずれでもない場合、空のアラートメッセージを生成するデータを条件付きで確認するにはどうすればよいですか?

49
Clarus Dignus

次の正解は、質問のコメントセクションで Felix Kling によって提供されました。

if (!$.trim(data)){   
    alert("What follows is blank: " + data);
}
else{   
    alert("What follows is not blank: " + data);
}
80
Clarus Dignus
//if(data="undefined"){

これは割り当てステートメントであり、比較ではありません。また、"undefined"は文字列であり、プロパティです。チェックは次のようになります:if (data === undefined)(引用符なし、それ以外は文字列値です)

定義されていない場合は、空の文字列を返している可能性があります。 if (!data)などのfalsy値もチェックしてみてください。

26
Sterling Archer
if(data.trim()==''){alert("Nothing Found");}
12
viral m

これは私から働きました。PHP page.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 );
                              } 
               }); 

注:「SQLSuccess」という単語はPHPから受信する必要があります

4
Nightmare
$.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!");
    }               
});
2
Asad Ali

その代わりに応答を使用すると、PHPからエコーするすべてのものを取得します。お役に立てれば

0
user3808307