Подтвердить что ты не робот

Проверьте, нет ли данных ответа AJAX/blank/null/undefined/0

Что у меня:

У меня есть функция 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!");
    }               
});

Моя проблема:

Я пробовал различные условия, но никто не правильно проверял данные. Основываясь на моих выводах, пустое предупреждающее сообщение не означает, что данные

  • пустой
  • не существует
  • равный нулю
  • нулевой длины
  • NULL
  • undefined

Если это ни одна из этих вещей, как я могу поэтому условно проверить данные, которые дают пустое предупреждение?

4b9b3361

Ответ 1

Следующий ответ был приведен в разделе комментариев вопроса Феликс Клинг:

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

Ответ 2

//if(data="undefined"){

Это оператор присваивания, а не сравнение. Кроме того, "undefined" - это строка, это свойство. Проверка выполняется так: if (data === undefined) (нет кавычек, иначе это строковое значение)

Если он не определен, вы можете вернуть пустую строку. Вы можете попробовать проверить значение falsy, подобное if (!data), а также

Ответ 3

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

Ответ 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 );
                              } 
               }); 

ПРИМЕЧАНИЕ: слово "SQLSuccess" должно быть получено от PHP

Ответ 5

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

Ответ 6

Если вы используете ответ вместо этого, вы получаете все, что вы эхо от PHP. Надеюсь, что это поможет