IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Test toujours faux dans un callback $.ajax [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut Test toujours faux dans un callback $.ajax
    Bonjour à tous,

    Je sèche lamentablement...

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <input type="button" id="b1" value="Je me connecte" />
     
    <script type="text/javascript">
    	$("#b1").click( function() {
    		$.ajax({url:"test.php",
    				dataType: "text",
    				success: function(retour){
    					if (retour == 'ab') 
    						alert("Ok : '" + retour + "'");
    					else
    						alert("Test faux : '" + retour + "'");
    					}
    		});
    	});
    </script>
    et mon fichier php :

    Pourquoi mon test est toujours faux ?
    Qu'est-ce que je fais comme erreur ?

    Merci pour vos idées

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    tu as un espace dans ton fichier php ou un retour ligne après ou un caractère parasite, bref ton fichier php ne te retourne pas juste "ab"


    teste ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    retour.indexOf('ab')>-1
    ensuite à toi de trouver d'où provient le caractère parasite ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut
    Merci de ta réponse.

    Je viens de tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    success: function(retour){
    	if (retour.indexOf('ab')>-1)
    		alert('Test : ' + retour.indexOf('ab'));
    	}
    }
    Il me retourne bien 0.

    Pour ce qui est du caractère parasite, j'ai bien cherché de ce côté là, mais jusqu'ici je n'ai rien trouvé.
    Je viens de tester autre chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php $r = 'ab';
    echo $r; ?>
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (retour == 'ab') 
    		alert("Ok : '" + retour + "'");
    	else
    		alert("Ne rien faire : '" + retour + "'");
    	}
    Test toujours faux.
    Mais si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php $r = 1;
    echo $r; ?>
    avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (retour == 1) 
    		alert("Ok : '" + retour + "'");
    	else
    		alert("Ne rien faire : '" + retour + "'");
    	}
    Le test est bon, et pour une valeur de 2 (dans le fichier php) le test est bien faux.
    Mais ce qui m'intéresse c'est de pouvoir retourner une chaîne de caractère.
    Y-a-t-il une méthode pour afficher les valeurs de retour en binaire ? Histoire de voir justement s'il n'y a pas de caractères CR/LF qui traînent.

    Merci à toi.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    1 est true en php ...



    que donne l'égalité absolue ?

    à mon avis tu dois avoir du BOM dans la réponse...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut
    En suivant tes conseils, j'ai 'enrichi' mon test de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    success: function(retour){
    	if (retour === 1) 
    		alert("Ok 1 : '" + retour + "'");
    	else if (retour === 2) 
    		alert("Ok 2 : '" + retour + "'");
    	else
    		alert("Ne rien faire : '" + retour + "'");
    	}
    en faisant 'varier' $r dans le fichier php de 1 à 3, le résultat est dans tous les cas : 'Ne rien faire'.

    Mes deux fichiers étant encodés en ANSI, je viens de les passer en UTF-8 sans BOM (avec notepad++) : cela ne change rien.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    le résultat est dans tous les cas : 'Ne rien faire'.
    Ca c'est normal... tu ne peux pas recevoir de données typées via HTTP, donc une comparaison stricte avec un Number ne pourra jamais être vraie...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par SpaceFrog
    tu as un espace dans ton fichier php ou un retour ligne après ou un caractère parasite, bref ton fichier php ne te retourne pas juste "ab"
    La réponse a été donnée dès la première réponse
    Utilise $.trim() éventuellement.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut
    Ça marche effectivement avec $.trim()...
    Mais le mystère reste entier sur le caractère invisible.

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ça sent le BOM ...

    enregistre ton fichier php qui envoie la réponse en utf-8 sans BOM
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut
    Je l'ai déjà testé (voir plus haut) mais cela ne change rien...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/06/2012, 14h01
  2. [AJAX] Status dans une requete Ajax toujours nul
    Par Astarion dans le forum AJAX
    Réponses: 1
    Dernier message: 14/07/2010, 07h56
  3. Callback dans la fonction $.Ajax ?
    Par DrWilly dans le forum jQuery
    Réponses: 3
    Dernier message: 31/05/2009, 00h43
  4. Callback ajax dans une class
    Par TThieuMa dans le forum jQuery
    Réponses: 2
    Dernier message: 04/02/2009, 09h41
  5. [Système] Booléen toujours faux dans une fonction
    Par Jules.LT dans le forum Langage
    Réponses: 5
    Dernier message: 01/08/2007, 18h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo