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
- empty
- non-existent
- equal to zero
- of length zero
- null
- undefined
If it's none of these things, how can I therefore conditionally check for the data that yields a blank alert message?
This worked form me.. PHP Code on page.php
and then AJAX Code has bellow
NOTE: the word 'SQLSuccess' must be received from PHP
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 likeif (!data)
as wellIf you use response instead of that you get everything that you echo from the PHP. Hope this helps
The following correct answer was provided in the comment section of the question by Felix Kling: