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] Modifier deux balises <div> avec une fonction innerhtml


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 256
    Points : 83
    Points
    83
    Par défaut [AJAX] Modifier deux balises <div> avec une fonction innerhtml
    Bonjour,

    Je possède sur une page internet :
    une liste
    deux tableaux

    Ainsi lorsque je sélectionne un choix sur la liste, il faut que les deux tableaux se modifient, pour éviter de recharger la page, j'utilise actuellement "Innerhtml" qui me permet de modifier un tableau qui se trouve dans une balise <div>.

    Maintenant je dois modifier un second tableau, celui ci ne peut être insérer dans la même balise <div> je me retrouve donc avec deux div à modifier.

    Est'il possible de le faire avec innerhtml ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function change(limite,mois,annee) 
    { 	
    	getXhr();
    	xhr.onreadystatechange = function()
        {
         if(xhr.readyState == 4 && xhr.status == 200)
         {
         	document.getElementById('test').innerHTML=xhr.responseText;
         }
        }
    xhr.open("GET","tab_dyn.php?titre="+document.form1.select.options[document.form1.select.selectedIndex].text+"&mois="+mois+"&annee="+annee+"&nbr_jour="+limite,true);
    xhr.send(null);
    }
    J'ai deja essayé de mettre deux evenements differents sur la liste afin d'appeller deux fonctions "innerhtml" différentes (bricolage je l'avoue) mais cela ne fonctionne pas!

    Merci de votre aide

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(xhr.readyState == 4 && xhr.status == 200)
         {
         	document.getElementById('test').innerHTML=xhr.responseText;
         	document.getElementById('test2').innerHTML=xhr.responseText;
         }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 256
    Points : 83
    Points
    83
    Par défaut
    Merci de ta réponse.

    Cependant, comment peut on ensuite spécifier le code que l'on veut placer ?
    Dans l'exemple mit ci dessus, à la place de la balise test, on aura le contenu du fichier tab_dyn.php et dans al seconde div peut on mettre un second fichier tab_dyn2 ??

    Merci de ton aide

  4. #4
    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
    Non, dans ton script php, tu concatènes les valeurs souhaitées pour chaque champ en les séparant par un séparateur quelconque (par exemple / ou ; ou ce que tu veux, même un truc du genre <br>...) puis coté javascript, tu sépares le responseText avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var resultat = xhr.responseText.split('séparateur');
    et tu obtiens un tableau des différentes valeurs souhaitées, ainsi, si tes div s'appellent test0 et test1 par exemple, tu peux faire une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(i=0;i<resultat.length;i++){
    document.getElementById('test'+i).innerHTML = resultat[i]
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre habitué Avatar de zintelix3d
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(xhr.readyState == 4 && xhr.status == 200)
         {
         	document.getElementById('test').innerHTML=xhr.responseText;
         	document.getElementById('test2').innerHTML=xhr.responseText;
         }
    Effectivement la t'aura le même contenu 2 fois dans test et test2, y a 2 solutions,

    1.soit tu utilise xhr1 et xhr2 avec 2 open différents.
    2.soit dans ton tab_dyn.php, tu met,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo tableau1.'|'.tableau2;
    en séparant le contenu des 2 tableau par un caractère spécial genre '|', ou un autre à condition qu'il ne figure pas ni dans tableau1 ni dans tableau2, puis tu récupère

    if(xhr.readyState == 4 && xhr.status == 200)
    {
    var reponse=xhr.responseText;
    var tab=reponse.split('|');
    document.getElementById('test').innerHTML=tab[0];
    document.getElementById('test2').innerHTML=tab[1];
    }
    bonne chance
    Bonne nuit blanche

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 256
    Points : 83
    Points
    83
    Par défaut
    Merci de ton aide !

    En fait, pour simplifier les explications, j'ai fais passer cela en deux tableaux mais en fait c'est un peu plus compliqué donc je vais essayé avec ta première méthode!

    Cependant je voulais savoir :

    quand tu dis xhr1 et xhr2, on fait tout dans la meme fonction comme ceci :
    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
     
    function change(limite,mois,annee) 
    { 	
    	getXhr1();
    	xhr1.onreadystatechange = function()
        {
         if(xhr1.readyState == 4 && xhr1.status == 200)
         {
         	document.getElementById('test').innerHTML=xhr1.responseText;
         }
        }
    xhr1.open("GET","tab_dyn.php?titre="+document.form1.select.options[document.form1.select.selectedIndex].text+"&mois="+mois+"&annee="+annee+"&nbr_jour="+limite,true);
    xhr1.send(null);
     
    	getXhr2();
    	xhr2.onreadystatechange = function()
        {
         if(xhr2.readyState == 4 && xhr2.status == 200)
         {
         	document.getElementById('image').innerHTML=xhr2.responseText;
         }
        }
    xhr2.open("GET","tab_dyn2.php?titre="+document.form1.select.options[document.form1.select.selectedIndex].text+"&mois="+mois+"&annee="+annee+"&nbr_jour="+limite,true);
    xhr2.send(null);
    }
    ou il faut le séparer en deux fonctions et faire passer cela sous deux evenements sur la liste ?

    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
     
    function change(limite,mois,annee) 
    { 	
    	getXhr1();
    	xhr1.onreadystatechange = function()
        {
         if(xhr1.readyState == 4 && xhr1.status == 200)
         {
         	document.getElementById('test').innerHTML=xhr1.responseText;
         }
        }
    xhr1.open("GET","tab_dyn.php?titre="+document.form1.select.options[document.form1.select.selectedIndex].text+"&mois="+mois+"&annee="+annee+"&nbr_jour="+limite,true);
    xhr1.send(null);
     
    et 
     
    function change2() 
    { 	
    	getXhr2();
    	xhr2.onreadystatechange = function()
        {
         if(xhr2.readyState == 4 && xhr2.status == 200)
         {
         	document.getElementById('image').innerHTML=xhr2.responseText;
         }
        }
    xhr1.open("GET","tab_dyn2.php?titre="+document.form1.select.options[document.form1.select.selectedIndex].text+"&mois="+mois+"&annee="+annee+"&nbr_jour="+limite,true);
    xhr2.send(null);

Discussions similaires

  1. Affichage d'une div avec une fonction Javascript
    Par maxime-mb dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/01/2012, 11h09
  2. Modifier deux balises div avec une fonction innerhtml
    Par johnson95 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/08/2008, 17h03
  3. [AJAX] Envoi ou non d'un formulaire avec une fonction AJAX
    Par ohhh.gringo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/05/2007, 11h47
  4. Réponses: 1
    Dernier message: 16/03/2007, 17h30
  5. Modifier un champs texte avec une fonction PHP (calcul TVA)
    Par Stella2809 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 00h55

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