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

AJAX Discussion :

Afficher des éléments avec ajax


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut Afficher des éléments avec ajax
    mon problème est de affichiez le titre des nouvelles que leur description complète avec Ajax voila mon fichier xml :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <rss version="2.0"><channel><title>Le fil de presse du Devoir</title><link>http://www.ledevoir.com/</link><description/><language>fr-ca</language><copyright/><lastBuildDate>Mon, 05 Feb 2007 04:00:00 EST</lastBuildDate><ttl>1440</ttl><item><title>Lettres: Clinique privée: le beurre et l'argent du beurre</title><pubDate>Mon, 05 Feb 2007 04:00:00 EST</pubDate><link>http://www.ledevoir.com/2007/02/05/129935.html</link><category>Quebec</category><description>On apprenait récemment dans l'éditorial de Jean-Robert Sansfaçon («M. Couillard doit intervenir», Le Devoir du 27 janvier 2007), d'une part, la création d'une clinique privée utilisant des avenues illégales pour rentabiliser ses services et, d'autre part, le refus du ministre de la Santé d'intervenir pour faire appliquer les règles de la loi 33. On se rend compte que le gouvernement Charest voulait jouer la carte de la social-démocratie en modérant les retombées du jugement Chaoulli, alors qu'en fait il n'avait aucune intention de légiférer dans la création de cliniques privées. <a href="http://www.ledevoir.com/2007/02/05/129935.html">Suite</a></description></item><item><title>La pénurie d'infirmières: un second regard s'impose!</title><pubDate>Mon, 05 Feb 2007 04:00:00 EST</pubDate><link>http://www.ledevoir.com/2007/02/05/129932.html</link><category>Sante</category><description>Établissons d'entrée de jeu que la profession d'infirmière attire beaucoup de jeunes: en 1997, l'Ordre des infirmières et infirmiers du Québec (OIIQ) a délivré 997 permis, alors que l'an dernier nous en avons délivré 2880 pour atteindre un nombre total d'infirmières de 68 754 qui est un sommet historique. Depuis 2002, nous avons un solde positif, c'est-à-dire que nous délivrons plus de permis que le nombre d'infirmières qui partent, à savoir entre 900 et 1145 permis de plus que le besoin de remplacement. <a href="http://www.ledevoir.com/2007/02/05/129932.html">Suite</a></description></item></rss>

    j'ai réussie d'affichiez les titres mes j'arrive pas a affichiez les description voila 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    /* Cette fonction va chercher un document XML sur
    le serveur et appelle la fonction afficherTitres lorsque
    c'est fait! */
    function chargeDocument(URI) {
    try {
     
     xmlhttp = new XMLHttpRequest();
     xmlhttp.open("GET", URI,true);
     xmlhttp.onreadystatechange=function() {
     if (xmlhttp.readyState==4) {
      afficheTitres(xmlhttp.responseXML);
      }
     }
     xmlhttp.send(null);
     } catch(o) {alert(o);}
    }
    /* Cette fonction est appelé lorsque le document XML est 
    chargé */
    function afficheTitres(doc) {
          titres = doc.getElementsByTagName("title");
          elementol = document.createElement("ol");
          var longueur = titres.length;
          for ( k = 0; k &lt; longueur ; ++k) {
            elementli = document.createElement("li");
            elementli.appendChild(
              document.createTextNode(
                titres[k].firstChild.nodeValue
              )
            );
            elementol.appendChild(elementli);
          }
          body = document.getElementsByTagName("body").item(0);
          body.appendChild(elementol);
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <body>
    <ul>
    <li><a href="javascript:chargeDocument('ledevoir.xml');">Récupère 
    et affiche les nouvelles du devoir.</a></li>
    </ul>
    </body>
    </html>
    merci pour votre aide .

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 670
    Points
    44 670
    Par défaut
    Bonjour,
    il faut que la structure XML soit conforme, il semblerait qu'il te manque une balise </channel>. Une bonne indentation aide à voir ce genre de choses et une validation n'est pas forcément inutile.

    La syntaxe suivante est-elle normale?
    for ( k = 0; k &lt; longueur ; ++k) {

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    oui j'ai pas mis tout mon code XML il est trop long, pour la syntaxe oui elle est correcte merci .

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 670
    Points
    44 670
    Par défaut
    J'avais des engrois sur le k &lt; longueur, mais si c'est un faux problème...

    Il te faut parcourir TOUTES les balises item pour en retirer le title et les description.

    un schéma
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var html='';
    var oItem = doc.getElementsByTagName("item");
    for( var i=0; i < oItem.length; i++){
     
      var oTitre = oItem[i].getElementsByTagName("title");
      for( var j=0; j < oTitre.length; j++){
        html += '<h2>' + oTitre[j].firstChild.nodeValue +'<\/h2>';
     
         var oDescription = oItem[i].getElementsByTagName("description");
        for( var k=0; k < oDescription.length; k++){
          html += '<p>' +oDescription[k].firstChild.nodeValue +'<\/p>';
        }
      }
    }

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    ca me donne pas le résultat voila le code je sais pas si j'ai fait ca comme il faut merci :
    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
    <script language="JavaScript">
     
    /* Cette fonction va chercher un document XML sur
    le serveur et appelle la fonction afficherTitres lorsque
    c'est fait! */
    function chargeDocument(URI) {
    try {
     
     xmlhttp = new XMLHttpRequest();
     xmlhttp.open("GET", URI,true);
     xmlhttp.onreadystatechange=function() {
     if (xmlhttp.readyState==4) {
      afficheTitresdescriprtions(xmlhttp.responseXML);
     
      }
     }
     xmlhttp.send(null);
     } catch(o) {alert(o);}
    }
    /* Cette fonction est appelé lorsque le document XML est 
    chargé */
    function afficheTitresdescriprtions(doc) {
    var html='';
    var oItem = doc.getElementsByTagName("item");
    for( var i=0; i &lt; oItem.length; i++){
     
      var oTitre = oItem[i].getElementsByTagName("title");
      for( var j=0; j &lt; oTitre.length; j++){
        html += '<h2>' + oTitre[j].firstChild.nodeValue +'</h2>';
     
         var oDescription = oItem[i].getElementsByTagName("description");
        for( var k=0; k &lt; oDescription.length; k++){
          html += '<p>' +oDescription[k].firstChild.nodeValue +'</p>';
        }
      }
    }
     
     
    </script>

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 670
    Points
    44 670
    Par défaut
    ca me donne pas le résultat...
    cela ne renseigne pas vraiment sur le problème que tu rencontres, même si ton code n'est pas très "académique" il devrait fonctionner.

    Sur quel navigateur testes tu ?
    Pourrais tu décrire plus précisément le non fonctionnement.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    bon pour le programme il donne pas d'erreur , mes quand je le lance sur Firefox j'ais le lien Récupère et affiche les nouvelles du devoir. quand je click sa donne rien sa afficher pas les titres et les description merci

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 619
    Points
    21 619
    Par défaut
    Mais... Tu as pensé à en faire quelque chose, de la var html que l'on vient de construire, ou tu pensais qu'elle allait s'ajouter toute seule à la page ?

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Juin 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2013
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Merci pour votre aide j'ai réussie a faire fonctionner mon 1ier programme

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 070
    Points : 44 670
    Points
    44 670
    Par défaut
    Il eut été intéressant de savoir d'où venait la source du problème

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut solution
    est-ce possible d'avoir la solution svp?

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

Discussions similaires

  1. [AJAX] Afficher des informations avec AJAX
    Par Chabanus dans le forum AJAX
    Réponses: 7
    Dernier message: 04/11/2009, 10h29
  2. [AJAX] Afficher des photo avec AJAX
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/08/2007, 08h34
  3. Afficher des éléments avec swing
    Par ToTo13 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 05/04/2007, 16h45
  4. Comment afficher des éléments de même nom en 1 seule fois
    Par magic8392 dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 27/09/2005, 11h24
  5. Réponses: 2
    Dernier message: 21/07/2005, 14h20

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