XMLHttpRequest et page web

XMLHttpRequest et page web - HTML/CSS - Programmation

Marsh Posté le 06-09-2007 à 13:54:02    

Bonjour,
 
Je voudrais créer une page dynamique avec XMLHttpRequest.
En gros en haut de la page il y a une image et dessous un tableau avec 2 colonnes.
Dans la colonne de gauche il y a des liens.
Lors du clic sur un lien, l'image d'en haut change ainsi que le texte de la colonne de droite.
 
Comment puis je faire ?
 
Merci

Reply

Marsh Posté le 06-09-2007 à 13:54:02   

Reply

Marsh Posté le 06-09-2007 à 14:03:19    

Vous pouvez déjà aller voir du coté de Google... En cherchant "XMLHttpRequest", vous tombez sur un grand nombre du tutoriels qui vous expliquent comment est-ce qu'il faut l'utiliser.  ;)  
 
Après, si vous avez des problèmes plus précises, n'hésitez pas à venir demander de l'aide.

Reply

Marsh Posté le 06-09-2007 à 14:06:49    

C'est déjà fait, mais je n'ai trouvé que des exemples remplissant des listes ou des zones de texte. Je n'est rien trouvé sur comment changer une image

Reply

Marsh Posté le 06-09-2007 à 14:15:34    

Et bien...
 
Vous avez fait quoi déjà par vous même, comme code ?

Reply

Marsh Posté le 06-09-2007 à 14:30:33    

J'ai déjà utilisé xmlhttprequest pour afficher une info bulle http://opp2.free.fr/saisons_precedentes.php. C'est une fonction javascript qui est appelé au passage de la souris.
Je ne comprends pas comment modifier un contrôle (image par exemple) qui ne se trouve pas à l'emplacement de la souris et du lien sur lequel je veux cliquer.
 
En javascript je ne sais faire que des choses simples.

Reply

Marsh Posté le 06-09-2007 à 14:45:19    

armand_c a écrit :

Je ne comprends pas comment modifier un contrôle (image par exemple) qui ne se trouve pas à l'emplacement de la souris et du lien sur lequel je veux cliquer.


Ah. D'accord. Je vois.
 
Lorsque vous avez dans le code HTML, par exemple :
 
[...]
<div id="tam">Texte à modifier</div>
[...]
 
Il vous suffit, pour modifier le contenu du <div> avec JavaScript, de faire :

Code :
  1. objTam = document.getElementById('tam'); // Création de la variable objTam, qui permet de manipuler l'objet <div>
  2. if (objTam) // Il faut toujours vérifier si l'objet a bien été trouvé avant de le manipuler
  3. {
  4.   objTam.innerHTML = 'Le texte vient d\'être <b>modifié</b> !';
  5. }


 
Par la suite, vous pouvez mettre ensemble les requêtes AJAX et la modification du contenu de vos éléments, et jouer sur le contenu HTML, le contenu texte ou l'apparence d'un objet précis de la page.

Reply

Marsh Posté le 06-09-2007 à 14:46:52    

Et pour les images, vous pouvez utiliser la propriété "src", en lui attribuant la valeur de l'emplacement de la nouvelle image.

Reply

Marsh Posté le 06-09-2007 à 14:50:30    

d'accord, merci beaucoup je vais essayer.
en fait il faut que j'apprenne à utiliser les div, ça a l'air riche comme objet.

Reply

Marsh Posté le 06-09-2007 à 15:03:12    

Je viens de faire un test.
Ca marche avec du texte et pas avec les images. Y a t'il un raffraichissement à demander ?

Reply

Marsh Posté le 06-09-2007 à 15:05:25    

Normalement, tout est fait automatiquement.
 
Pouvez vous poster ici votre code ?

Reply

Marsh Posté le 06-09-2007 à 15:05:25   

Reply

Marsh Posté le 06-09-2007 à 15:08:38    

<html>
  <head>
    <script language="javascript">
      //Lecture du contenu d'un fichier  
      function imageEnTete(page){  
        objTam = document.getElementById('tam'); // Création de la variable objTam, qui permet de manipuler l'objet <div>
        if (objTam) // Il faut toujours vérifier si l'objet a bien été trouvé avant de le manipuler
        {  
          if (page == "page1" ) {
            objTam.src="images/image1.jpg";
            objTam.innerHTML = page;
          }
          if (page == "page2" ) {
            objTam.src="images/image2.jpg";
            objTam.innerHTML = page;
          }
        }
        objTam2 = document.getElementById('tam2'); // Création de la variable objTam, qui permet de manipuler l'objet <div>
        if (objTam) // Il faut toujours vérifier si l'objet a bien été trouvé avant de le manipuler
        {  
          if (page == "page1" ) {
            objTam2.innerHTML = "Je suis le test de <b>page1</b>";
          }
          if (page == "page2" ) {
            objTam2.innerHTML = "Je suis le test de <b>page2</b>";
          }
        }
      }
    </script>
  </head>
  <body>
    <table width="80%" align="center" border="1">
      <tr>
        <td width="25%">
          logo OPP
        </td>
        <td width="75%">
          <div id="tam"><img src=""></div>
        </td>
      </tr>
      <tr>
        <td>
          <a href=# onclick="javascript:imageEnTete('page1');">Page 1</a>
          <br><a href=# onclick="javascript:imageEnTete('page2');">Page 2</a>
        </td>
        <td>
          <div id="tam2">&nbsp;</div>
        </td>
      </tr>
    </table>
  </body>
</html>

Reply

Marsh Posté le 06-09-2007 à 15:15:43    

Si vous changez l'image, ne le faites pas sur un <div></div>, mais sur un <img />, l'élément <div></div> n'ayant pas cette propriété.

Reply

Marsh Posté le 06-09-2007 à 15:16:35    

ok j'ai trouvé.
il faut que je passe la balise <img dans innerText.
objTam.src ne marche pas
 
merci pour vos aides

Reply

Marsh Posté le 06-09-2007 à 15:21:44    

Mais surtout pas !
 
Manipulez directement l'image.
 
Le code HTML d'origine doit donc être :

Code :
  1. [...]
  2. <img id="demoImg" src="images/image0.jpg" alt="Demo" />
  3. [...]


Et le code JavaScript qui va modifier l'image :

Code :
  1. objDemoImg = document.getElementById('demoImg');
  2. if (objDemoImg) objDemoImg.src = 'images/image1.jpg';

Reply

Marsh Posté le 06-09-2007 à 15:24:23    

bien noté
 
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed