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] Commet gérer les nuls


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut [AJAX] Commet gérer les nuls
    Yop!

    J'utilise AJAX dans une page ASP pour afficher les téléphone, fax et email des personnes sélectionnées dans une liste déroulante. Les informations sont affichées dans des input de type texte.

    Les informations sont extraites d'une BDD.

    Mettons que je sélectionne quelqu'un pour qui les trois informations sont présentes dans la BDD. Tout se passe bien et les trois input sont bien complétés.

    Ensuite, je sélectionne une autre personne pour qui le numéro de fax est absent dans la BDD. Permier probleme: j'ai un "erreur sur la page" en bas de l'écran. Second probleme: le numéro de fax de la personne précédente n'est pas effacé, alors que le téléphone et l'email sont bien écrasés par les nouvelles valeurs.

    Comment gérer ce genre de situation, sachant que je ne peux pas afficher "Aucun" (ou tout autre message du genre) quand l'information est manquante.

    Voici un bout du code ASP qui génère le XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      xml = xml & "<reponse>"
      ...
      if fax <> "" and not isnull(fax) then
        xml = xml & "<fax>" & fax & "</fax>"  
      else
        xml = xml & "<fax></fax>"  
      end if
      ...
      xml = xml & "</reponse>"
    Voici le code Javascript qui complète l'input:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (reponse.getElementsByTagName("fax")[0].firstChild.nodeValue==null)
      document.forms[0].agfax.value = "";
     else
      document.forms[0].agfax.value = reponse.getElementsByTagName("fax")[0].firstChild.nodeValue;
    J'ai également essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (reponse.getElementsByTagName("fax")[0].firstChild.nodeValue=="")
    Aucune des deux solutions ne fonctionne. Il est minuit passé, et je n'ai aucune idée de comment résoudre ce bleme. Alors si quelqu'un pouvait m'expliquer pourquoi cette c[censuré]e de code ne fonctionne pas, il aurait droit à ma reconnaissance éternelle.
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  2. #2
    Membre averti Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Points : 383
    Points
    383
    Par défaut
    j'ai deja eu ton premier probleme, quand un champ est vide ça te donne une erreur
    en fait quand "fax" est vide le XML renvoyé est de cette forme :
    au lieu de
    moi je teste avant si un champs est vide et dedans je met "/"

    et en principe ça devrai ecraser l'ancien numero de fax par la meme occasion

    petit conseil : pour voir passer tes XML, utilise l'extension Firefox Firebug
    ça fait gagner un temps fou
    J'mangerais plus jamais de chili... OUH !!!! DU CHILI !!!!

  3. #3
    Membre expérimenté
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Points : 1 316
    Points
    1 316
    Billets dans le blog
    1
    Par défaut
    Yop!

    Merci pour la réponse!

    J'étais parvenu à plus ou moins la même conclusion ce matin, comme quoi la nuit porte conseil.

    Donc finalement, le principe est simple: si la balise XML ne doit contenir aucune valeur, on ne la génère pas, et dans la page, on teste l'existance de la balise. Si elle existe, on complète l'input, sinon, on place une chaine vide dans cet input.

    Dans la page ASP qui génère le XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      xml = xml & "<reponse>"
      ...
      if fax <> "" and not isnull(fax) then
        xml = xml & "<fax>" & fax & "</fax>"  
      end if
      ...
      xml = xml & "</reponse>"
    Le code javascript qui complète l'input:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (reponse.getElementsByTagName("fax")[0])
      document.forms[0].agfax.value = reponse.getElementsByTagName("fax")[0].firstChild.nodeValue;	  
    else
      document.forms[0].agfax.value = "";
    Pfff, comment j'ai pas vu ça hier soir....
    Un ascenseur est une machine qui passe quand même la moitié de son temps à descendre.

  4. #4
    Membre averti Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Points : 383
    Points
    383
    Par défaut
    oui voila exactement
    j'ai eu le meme soucis et avec firebug j'ai vu ça en 5 minutes
    J'mangerais plus jamais de chili... OUH !!!! DU CHILI !!!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/01/2016, 16h04
  2. Réponses: 3
    Dernier message: 17/08/2015, 03h40
  3. Réponses: 0
    Dernier message: 07/11/2014, 18h00
  4. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 09h44
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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