web-dev-qa-db-fra.com

Vérifiez si AJAX les données de réponse sont vides / vides / nuls / indéfinis / 0

Ce que j'ai:

J'ai jQuery AJAX fonction qui renvoie HTML après avoir interrogé une base de données. En fonction du résultat de la requête, la fonction renverra du code HTML ou rien (c'est-à-dire vide) comme souhaité.

Ce dont j'ai besoin:

Je dois vérifier conditionnellement si les données sont vides.

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

Mon problème:

J'ai essayé diverses conditions mais aucune ne vérifie correctement les données. D'après mes conclusions, un message d'alerte vide ne signifie pas que les données sont

  1. vide
  2. inexistant
  3. égal à zéro
  4. de longueur zéro
  5. nul
  6. undefined

Si ce n'est pas le cas, comment puis-je donc vérifier de manière conditionnelle les données qui produisent un message d'alerte vide?

49
Clarus Dignus

La réponse correcte suivante a été fournie dans la section commentaires de la question par 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"){

Ceci est une déclaration de mission, pas une comparaison. De plus, "undefined" est une chaîne, c'est une propriété. La vérification est comme ceci: if (data === undefined) (sans guillemets, sinon c'est une valeur de chaîne)

Si ce n'est pas défini, vous pouvez retourner une chaîne vide. Vous pouvez essayer de rechercher une valeur falsy telle que if (!data)

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

Cela a fonctionné de moi .. PHP Code sur page.php

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

et puis AJAX Code a ci-dessous

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: le mot 'SQLSuccess' doit être reçu de 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

Si vous utilisez la réponse au lieu de cela, vous obtenez tout ce que vous retenez de PHP. J'espère que cela t'aides

0
user3808307