Fonction javascript

Résolu/Fermé
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 - 12 mai 2016 à 13:57
 nouvelle_informaticienne - 12 mai 2016 à 20:46
Bonjour
s'il vous plait je me permets de vous demander de l aide , j'ai ce script qui contient des fonctions javascript et qui font exactement la même chose c'est en faite la même fonction avec des arguments différents je veux bien rendre ce code une seule fonction avec des arguments et que je l’appelle a chaque fois pour mes différentes listes ! pouvez vous m'aider j'ai essaye mais je fais des erreurs car je ne suis pas habitue avec js et avec ses éléments getElementById .... je ne sais pas bien les utiliser
je vous remercie

function affiche3() {
 var selectBox = document.getElementById("partenaire"),i, span = document.getElementById('affiche3');
 span.innerHTML=''
for (i=0; i < selectBox.length; i++) 
{
 if (selectBox[i].selected) 
 {
  span.innerHTML += selectBox[i].innerHTML+'<br>';
 }
}
}

function recupere() {
 var selectBox = document.getElementById("partenaire"),i,span;
 for (i=0; i < selectBox.length; i++) 
{
 if (selectBox[i].selected) 
 {
   span.innerHTML += selectBox[i].value+'<br>';

}

}
return span
}

//encore
function affiche() {
 var selectBox = document.getElementById("responsables"),i, span = document.getElementById('affiche');
 span.innerHTML=''
for (i=0; i < selectBox.length; i++) 
{
 if (selectBox[i].selected) 
 {
  span.innerHTML += selectBox[i].innerHTML+'<br>';


 }
}
}

//encore
function affiche4() {
 var selectBox = document.getElementById("traitans"),i, span = document.getElementById('affiche4');
 span.innerHTML=''
for (i=0; i < selectBox.length; i++) 
{
 if (selectBox[i].selected) 
 {
  
  span.innerHTML += selectBox[i].innerHTML+'<br>';


 }
}
}

//encore
function affiche2() {
 var selectBox = document.getElementById("intervcic"),i, span = document.getElementById('affiche2');
 span.innerHTML=''
for (i=0; i < selectBox.length; i++) 
{
 if (selectBox[i].selected) 
 {
  span.innerHTML += selectBox[i].innerHTML+'<br>';
 }
}
}


NB je suis debutante en ce domaine merci a vous
A voir également:

2 réponses

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
12 mai 2016 à 14:07
Bonjour,

Il suffit de passer en paramètres les ID des éléments :
function affiche(idSelectBox,idSpan) {
 var selectBox = document.getElementById(idSelectBox);
 var span = document.getElementById(idSpan);
     span.innerHTML='';
 for (var i=0; i < selectBox.length; i++) {
   if (selectBox[i].selected){  
    span.innerHTML += selectBox[i].innerHTML+'<br>';
   }
 }
 return span;
}

1
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
12 mai 2016 à 14:15
merciiii bien Jordan pour votre , bonne journee
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
12 mai 2016 à 14:07
Salut,

Les deux changements entre tes fonctions sont les éléments appelés via getElementById. On peut donc factoriser ces fonctions en passant les deux éléments appelés en paramètres :
    // exemple de factorisation des fonctions afficheN
    function affiche(element1, element2) {
        var selectBox = document.getElementById(element1), i, span = document.getElementById(element2);
        span.innerHTML = '';
        for (i = 0; i < selectBox.length; i++)
        {
            if (selectBox[i].selected)
            {
                span.innerHTML += selectBox[i].innerHTML + '<br>';


            }
        }
    }
    
    // qui s'utilise donc comme ceci
    affiche('responsables', 'affiche');
    affiche('intervcic', 'affiche2');
    affiche('partenaire', 'affiche3');


Bonne journée,
1
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
12 mai 2016 à 14:15
:) je vous remerciiie bcp Pitet :) bonne journée
0
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
Modifié par Nouvelle_Informaticienne le 12/05/2016 à 16:59
je reviens vers vous car mon code ne marche pas voila j'ai fais peut etre comme vous m'avez dit :
function affichett(element1,element2) {
 var selectBox = document.getElementById("element1"),i, span = document.getElementById('element2');
 span.innerHTML=''
for (i=0; i < selectBox.length; i++) 
{
 if (selectBox[i].selected) 
 {
  
  span.innerHTML += selectBox[i].innerHTML+'<br>';


 }
}
}


et puis pour l'appele de la fonction voila :


<tr>
   
      <td> <p style="border:1px solid black;background:#FFF; height:100%; width:100%; align:center">
<STRONG border="solid"  align="center" id="affiche3"></STRONG>
</P>
</td>
            <td><label for="partenaire" ><strong>Partenaires</strong></label></td>
            <td><select name="partenaire[]"  id="partenaire" onchange="affichett('partenaire','affiche3');" style="width:450px;" multiple="multiple" size="4" >



comme ca je vois tt est logique mais ca fonctionne pas !
je vous remercie encore une fois
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021
12 mai 2016 à 17:04
Comme je te l'ai indiqué das un message précédent .... as tu regardé dans la console de ton navigateur ??
Moi je vois déjà au moins une erreur..... (de point virgule manquant).
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
12 mai 2016 à 17:20
Attention à l'utilisation des paramètres :
var selectBox = document.getElementById("element1"),i, span = document.getElementById('element2');
-> on récupère ici les éléments dont l'identifiant est "element1" et "element2"

A corriger par :
var selectBox = document.getElementById(element1), i, span = document.getElementById(element2);
-> on récupère les éléments dont l'identifiant est la valeur des variables element1 et element2
0
nouvelle_informaticienne > jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024
Modifié par nouvelle_informaticienne le 12/05/2016 à 20:48
bonsoir , vous avez raison MonsieurJordane il y a l'erreur du point virgule ! mais pour le truc de console je fais comment svp ? pouvez vous me rappelez de l'astuce ? psk c’était pas sur ce poste ! svp monsieur comment faire pour tester ? je vous remercie par avance, pour mon problème c'est bon est resolu mais je voulais savoir l'astuce de tester merci
0