Vérifier si l'AJAX données de réponse est vide/vide/null/indéfini/0
Ce que j'ai:
J'ai AJAX de jQuery fonction qui renvoie HTML après interrogation d'une base de données. Selon le résultat de la requête, la fonction renvoie du code HTML ou rien (c'est à dire vide) comme souhaité.
Ce dont j'ai besoin:
J'ai besoin de conditionnelle vérifier quand les données est vide.
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é une variété de conditions, mais aucun de vérifier correctement les données. Selon mes constatations, un vide de message d'alerte ne signifie pas que les données sont
- vide
- inexistante
- égal à zéro
- de longueur zéro
- null
- undefined
Si c'est aucune de ces choses, comment puis-je donc conditionnellement vérifier les données qui produit un vide message d'alerte?
- De retour JSON et l'utilisation d'un drapeau.
$.trim
la chaîne à supprimer les espaces blancs.if (!$.trim(data))
- Apprendre comment debug JavaScript.
alert
n'est pas un outil de débogage. Journal de la valeur correctement et examiner sa valeur.
Vous devez vous connecter pour publier un commentaire.
La suite bonne réponse a été fournie dans la section commentaire de la question par Felix Kling:
console.log();
plutôt quealert();
. C'est une meilleure pratique. Si vous prenez l'habitude de les alerter vos messages d'erreur que vous pourriez un jour vous retrouver dans une boucle infinie de boîtes d'alerte et pas de possibilité de fermer le navigateur/programme. Cela étant dit, belle réponse.data
est un tableau et je voulais traiter séparément le cas d'un tableau vide?C'est une instruction d'affectation, pas une comparaison. Aussi,
"undefined"
est une chaîne de caractères, c'est un bien. Vérifier qu'il est comme ceci:if (data === undefined)
(pas de guillemets, sinon c'est une valeur de chaîne)Si elle n'est pas définie, vous pouvez retourner une chaîne vide. Vous pouvez essayer de vérifier pour un
falsy
valeur commeif (!data)
ainsiif (data == undefined)
œuvres. Merci pour les explications. Sélectionné comme réponse correcte dans l'ordre chronologique.Cela a fonctionné formulaire de moi..
Code PHP sur page.php
puis Code AJAX a soufflet
REMARQUE: le mot "SQLSuccess' doit être reçue à partir de PHP
Si vous utilisez de la réponse, au lieu de ce que vous obtenez tout ce que vous l'écho de la PHP. Espérons que cela aide