Check if AJAX response data is empty/blank/null/undefined/0

JavascriptJqueryAjaxNull

Javascript Problem Overview


What I have:

I have jQuery AJAX function that returns HTML after querying a database. Depending on the result of the query, the function will either return HTML code or nothing (i.e. blank) as desired.

What I need:

I need to conditionally check for when the data is blank.

My code:

$.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!");
	}  				
});

My problem:

I've tried a variety of conditions but none correctly check the data. Based on my findings, a blank alert message does not mean data is

  1. empty
  2. non-existent
  3. equal to zero
  4. of length zero
  5. null
  6. undefined

If it's none of these things, how can I therefore conditionally check for the data that yields a blank alert message?

Javascript Solutions


Solution 1 - Javascript

The following correct answer was provided in the comment section of the question by Felix Kling:

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

Solution 2 - Javascript

//if(data="undefined"){

This is an assignment statement, not a comparison. Also, "undefined" is a string, it's a property. Checking it is like this: if (data === undefined) (no quotes, otherwise it's a string value)

If it's not defined, you may be returning an empty string. You could try checking for a falsy value like if (!data) as well

Solution 3 - Javascript

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

Solution 4 - Javascript

This worked form me.. PHP Code on page.php

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

and then AJAX Code has bellow

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 );
                              }	
	           }); 

NOTE: the word 'SQLSuccess' must be received from PHP

Solution 5 - Javascript

$.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!");
    }               
});

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionClarus DignusView Question on Stackoverflow
Solution 1 - JavascriptClarus DignusView Answer on Stackoverflow
Solution 2 - JavascriptSterling ArcherView Answer on Stackoverflow
Solution 3 - Javascriptviral mView Answer on Stackoverflow
Solution 4 - JavascriptNightmareView Answer on Stackoverflow
Solution 5 - JavascriptAsad AliView Answer on Stackoverflow