Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de chargement de page xml distante

xmlhttprequest

    13 novembre 2010 à 15:37:47

    Bonjour,

    J'ai un petit soucis avec une application que je suis en train de développer. Il s'agit en fait d'une application iphone. Dans cette application j'ai un panneau "convocations" ou je peux choisir 3 liens différents: Equipe 1, Equipe B ou Equipe C.

    Lorsque l'utilisateur choisi tel ou tel panneau, alors une page s'affiche avec un tableau html avec à l'intérieur la liste des personnes "convoquées". Pour chaque équipe, je dispose d'un fichier xml et c'est ce fichier qui est chargé avec onload. Il est chargé puis converti en un document html. Le code converti est écrit dans la balise div id="writeteamA" ou writeteamB ou writeTeamC.

    Le problème est qu'avec ce code, il n'y a que "l'equipe A" qui se charge, je pense que c'est un problème dans les onload mais je ne trouve pas le soucis.

    Voici le code html de la page principale:

    <html>
        <head>
            <title>Mon equipe</title>
            <link type="text/css" rel="stylesheet" media="screen" href="jqtouch/jqtouch.css">
            <link type="text/css" rel="stylesheet" media="screen" href="themes/jqt/theme.css">
            <script type="text/javascript" src="jqtouch/jquery.js"></script>
            <script type="text/javascript" src="jqtouch/jqtouch.js"></script>               
            
            <script type="text/javascript" src="convocA.js"></script>
            <script type="text/javascript" src="convocB.js"></script>
            <script type="text/javascript" src="convocC.js"></script>
                        
            <script type="text/javascript">
                    var jQT = $.jQTouch({
                    icon: 'kilo.png',
                    statusBar: 'black'
                });                
            </script>
            
            <SCRIPT TYPE="text/javascript">
            function initA(){
            loadXMLDocA('http://www.monsite.net/iphone/convocA.xml');
            }
            function initB(){
            loadXMLDocA('http://www.monsite.net/iphone/convocB.xml');
            }
            function initC(){
            loadXMLDocA('http://www.monsite.net/iphone/convocC.xml');
            }
            </SCRIPT>
            
            
        </head>
        <body onload="initB();initA();initC();">
            <div id="accueil">
                <div id="convocations">
                <div class="toolbar">
                    <h1>Les convoc's</h1>
                    <a class="button back" href="#">Retour</a>
                </div>
                <ul class="edgetoedge">
                    <li class="arrow"><a id="0" href="#convocA">Equipe A</a></li>
                    <li class="arrow"><a id="1" href="#convocB">Equipe B</a></li>
                    <li class="arrow"><a id="2" href="#convocC">Equipe C</a></li>
                </ul>
            </div>
            </div>
           
           <div id="convocA">
                <div class="toolbar">
                    <h1>Equipe A</h1>
                    <a class="button back" href="#">Retour</a>
                </div>
                <div id="writeTeamA"></div>       
            </div>
            
            <div id="convocB">
                <div class="toolbar">
                    <h1>Equipe B</h1>
                    <a class="button back" href="#">Retour</a>
                </div>
                <div id="writeTeamB"></div>       
            </div>
            
            <div id="convocC">
                <div class="toolbar">
                    <h1>Equipe C</h1>
                    <a class="button back" href="#">Retour</a>
                </div>
                <div id="writeTeamC"></div>       
            </div>
    


    Voici le code de convocA.js : (ce code fonctionne)

    function loadXMLDocA(url)
    {
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        txt="<center><br><table style='border-collapse: collapse' border='1' width=300 height=100><tr><th>Equipe A</th></tr>";
        x=xmlhttp.responseXML.documentElement.getElementsByTagName("CONVOC");
        for (i=0;i<x.length;i++)
          {
          txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("DATE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("CONTRE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("LIEU");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("HEURE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("RDV");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("DELEGUE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("ARBITRE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("UN");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("DEUX");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("TROIS");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("QUATRE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("CINQ");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("SIX");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("SEPT");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("HUIT");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("NEUF");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("DIX");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("ONZE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("DOUZE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("TREIZE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
            txt=txt + "</tr>";
            txt=txt + "<tr style='text-align:center;'>";
          xx=x[i].getElementsByTagName("QUATORZE");
            {
            try
              {
              txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>";
              }
            catch (er)
              {
              txt=txt + "<td>*</td>";
              }
            }
          txt=txt + "</tr>";
          }
        txt=txt + "</center></table><br>";
        document.getElementById('writeTeamA').innerHTML=txt;
        }
      }
    xmlhttp.open("GET",url,true);
    xmlhttp.send();
    }
    


    Et le code de convocA.xml :

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!-- Edited by XMLSpy® -->
    <CATALOG>
    	<CONVOC>
    		<DATE>Date: 7 Novembre 2010</DATE>
    		<CONTRE>Contre : tsts</CONTRE>
    		<LIEU>Lieu: ici</LIEU>
    		<HEURE>Heure: 15h</HEURE>
    		<RDV>Rdv: 13h30</RDV>
    		<DELEGUE>Délégué: totoM</DELEGUE>
    		<ARBITRE>Arbitre: </ARBITRE>
    		<UN>totoF</UN>
    		<DEUX>totoJ</DEUX>
    		<TROIS>totoF</TROIS>
    		<QUATRE>totoT</QUATRE>
    		<CINQ>totoR</CINQ>
    		<SIX>toto</SIX>
    		<SEPT>totoD</SEPT>
    		<HUIT>LE totoB</HUIT>
    		<NEUF>totoJ</NEUF>
    		<DIX>totoJ</DIX>
    		<ONZE>totoD</ONZE>
    		<DOUZE>totoL</DOUZE>
    		<TREIZE>totoY</TREIZE>
    		<QUATORZE>toto</QUATORZE>
    	</CONVOC>	
    </CATALOG>
    


    Les codes sont les mêmes pour convocB.js, convocC.js, convocB.xml et convocC.xml...

    Merci d'avance pour votre aide..
    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2010 à 16:28:53

      Ce que je vois, c'est que la fonction "loadXMLDocA" ne charge les informations QUE dans le cadre équipe A
      document.getElementById('writeTeamA').innerHTML=txt;
      


      Pourquoi pas ajouter un argument à cette fonction pour lui indiquer aussi dans quelle DIV ajouter les informations ?
      function loadXMLDocA(url,elemId){//l'argument elemId est l'id de la DIV qui recevra les informations
        //instructions
        document.getElementById(elemId).innerHTML=txt;
        //suite des instructions
      }
      


      Et pour l'appeler, tu fais :
      <SCRIPT TYPE="text/javascript">
              function initA(){
              loadXMLDocA('http://www.monsite.net/iphone/convocA.xml','writeTeamA');
              }
              function initB(){
              loadXMLDocA('http://www.monsite.net/iphone/convocB.xml','writeTeamB');
              }
              function initC(){
              loadXMLDocA('http://www.monsite.net/iphone/convocC.xml','writeTeamC');
              }
              </SCRIPT>
      


      Et pour finir, tu renommes la fonction loadXMLDocA en loadXMLDoc, comme ça tu sauras que cette fonction ne s'applique pas qu'à A
      • Partager sur Facebook
      • Partager sur Twitter

      Problème de chargement de page xml distante

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown