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

JavaScript Discussion :

[AJAX] Condition non prise en compte!


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut [AJAX] Condition non prise en compte!
    Bonjour,
    Je suis nouveau sur ce forum et nouveau aussi dans le domaine de la programmation Ajax.
    J'ai fait un script dont voici un bout en piece jointe.
    Ce code fonctionne correctement si je supprime le if :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(nombre==3){document.getElementById('flash_block').style.display="none"; }
    Par contre si je le remets, tout ce qui se trouve dans le if est ignoré même si la condition est vérifiée. La variable nombre existe bien car en faisant
    document.write(nombre) j'obtiens bien un résultat.
    Si quelqu'un pouvait m'aider, ce serait vraiment sympa car j'ai vraiment du mal à comprendre.
    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    désolé je reposte la pièce jointe car je me suis trompé d'extension.
    Merci d'avance pour vos conseils
    Fichiers attachés Fichiers attachés

  3. #3
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Comme l'indique son nom, responseText te renvoies du texte, donc une chaîne que tu compares avec un nombre, or 3 et '3' ne sont pas égaux et ta condition est fausse, essaye avec :

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse Bovino.
    J'ai essayé mais ça ne marche toujours pas !!!
    J'ai vraiment du mal à comprendre

  5. #5
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Montre-nous le code html correspondant.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    la page appelée est en pièce jointe.
    Elle est toute simple. Je récupère le nombre d'images et de l'autre côté je fait une condition suivant le nombre.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Tu peux poster ton code directement sur le forum? (en cliquant avant sur le bouton # de ta barre d'outils)
    J'ai un principe : je n'ouvre aucune pièce jointe (on sait jamais ce qu'il y a dedans...)

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Voici la page appelante : (Merci pour le # c'est plus simple )

    (xhr est définie plus haut dans la page)

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <script language="javascript">
     
    function nombreimages(){
    				var xhr = getXhr()
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
     
    					var nombre=xhr.responseText;
    					//document.write(xhr.responseText)
    					if(nombre==3){
    					document.getElementById('flash_block').style.display="none";
    								 }				
     
     
    																}	
     
    													}
     
    				//xhr.open("GET","ajax.php",true);
    				xhr.open("GET", "nombre_images.php?nocache=" + Math.random(), true); 
    				xhr.send(null);
     
     
    					  }	
    </script>

    voici le code HTML :
    Cette page est la page nombre_images.php qui est appelée par le code qui est ci-dessus:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <?
     
    /* déclaration des variables de connexion*/ 
    $host = ;
    $user = '';
    $pass = '';
    $db = '';
     
    // connection à la DB
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
     
     ///////////////////////////////////////////        nombre d'images        ////////////////////////////
    $select = "select idimage FROM recupimage";
    $result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );	
     
     
     
    			// si résultat on l'affiche.
    if($result)  {
        				while($row1 = mysql_fetch_array($result)) {
    						$nbre_images_table+=1;	
     
    															 }
     
    			}
     
    echo $nbre_images_table;
     
    </body>
    </html>

  9. #9
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    as-tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(eval(nombre) == 3 )

  10. #10
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    effectivement c'est la conditon qui pose problème (déjà dit plus haut)
    On peut pas comparer un entier un nombre avec un texte,çe renverra toujours false...

  11. #11
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    si c´est pour comparer un texte a un entier tu fais donc ceci :

    1. si t´es sur que cela ne comporte pas de balise html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    var nombre=  eval(xhr.responseText);
     
    //document.write(xhr.responseText)
    if( parseInt(nombre) == 3){
    					document.getElementById('flash_block').style.display="none";
    								 }
    sinon essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       var existe = 0;
       var nombre=  eval(xhr.responseText);
       for (var i in nombre) {
       if (  parseInt(i) == 3)
       {
         existe = 1;
         break;  
       } 
      }
    et la tu traitera la variable existe.

  12. #12
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Comme l'indique son nom, responseText te renvoies du texte, donc une chaîne que tu compares avec un nombre, or 3 et '3' ne sont pas égaux
    On peut pas comparer un entier un nombre avec un texte,çe renverra toujours false...
    Justement, non.
    "3" == 3 >> true, car l'opérateur == compare uniquement la valeur
    "3" === 3 >> false, car l'opérateur === compare la valeur ET le type

  13. #13
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    à mon avis le problème vient de nombre_images.php qui ne renvoie pas
    juste un nombre, mais une page html, donc dans ton responseText tu
    as qqch du genre "...<html>...<body>3</body></html>"

    et tu ne t'en es pas aperçu car tu as utilisé document.write pour ton débugage
    et tu as juste vu le "3", les balise html ayant été interprétées par ton navigateur.

    avec alert(xhr.responseText) tu devrais y voir plus clair. (Un petit conseil au passage, utilise FireBug ou similaire pour ton développement)

    Donc, modifie ta page nombre_images.php pour qu'elle ne retourne que le "3"
    tu commences ta page directement par

    <?php

    et tu fini par

    ?>

    en faisant attention qu'il n'y aie aucun espace avant ni après les balises php.

  14. #14
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    marcha +1

Discussions similaires

  1. Conditions non prises en compte
    Par erlerwade dans le forum Macro
    Réponses: 2
    Dernier message: 08/10/2013, 12h28
  2. Conditions non prises en compte
    Par hoshizora dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 21/05/2012, 10h10
  3. Réponses: 0
    Dernier message: 03/06/2009, 11h09
  4. condition sur while non prise en compte
    Par Thierry2008 dans le forum Débuter
    Réponses: 4
    Dernier message: 24/04/2009, 18h24
  5. Condition OR non prise en compte
    Par Thetonio007 dans le forum SQL
    Réponses: 7
    Dernier message: 08/06/2007, 16h02

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