Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/04/2007, 16h44   #1
Rédacteur/Modérateur
 
Avatar de marcha
 
Homme Marc Chappuis
Développeur Web
Inscription : décembre 2003
Messages : 1 535
Détails du profil
Informations personnelles :
Nom : Homme Marc Chappuis
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2003
Messages : 1 535
Points : 2 206
Points : 2 206
Par défaut [Prototype] Boutons paramétrés

Bonjour,

J'ai une série de boutons dans une application. Ceux-ci servent à lancer
des requêtes Ajax quand on clique dessus en y passant des paramètres.

Traditionnellement je coderai ça ainsi:

Code :
1
2
3
4
5
6
 
<img class='bouton' onclick='fonction_commune('paramètres_url_encodé');' />
 
function fonction_commune(params) {
  new Ajax.Updater(un_element, 'page.php?' + params);
}
Mais j'aime pas trop l'idée de mélanger le javascript dans le html. Alors
j'ai envisagé ceci:

Code :
1
2
3
4
5
6
7
8
9
 
$$('.boutons').each( function(e) {
  Event.observe(e, 'click', fonction_commune);
}
function fonction_commune(event) {
  var bouton = Event.element(event);
  var params = bouton.getAttribute(...);
  new Ajax.Updater(un_element, 'page.php?' + params);
}
Avec cette approche (que je souhaite moins obstrusive) je ne sais pas où je dois coder les arguments que j'ai besoin pour mes boutons. J'ai pensé à les
générer dans un attribut quelconque, mais ça me semble pas propre non-plus.

des suggestions ?
__________________
Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !
marcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 17h13   #2
LEK
Membre éclairé
 
Inscription : mai 2005
Messages : 596
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 596
Points : 363
Points : 363
L'approche initiale m'avais l'air pas si mal.
Maintenant tu peux aussi bien te créer un tableau à deux dimension
avec en dimension 1 l'id du bouton et en dimension 2
les paramètres que ta fonction requiert, non?
LEK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 17h28   #3
Invité régulier
 
Inscription : octobre 2005
Messages : 10
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2005
Messages : 10
Points : 6
Points : 6
Tu peux faire comme ci- dessous :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 function AddEvent(img){
    var bouton=document.getElementById(img);
   if (bouton.attachEvent){
        bouton.attachEvent("onclick", fonction_commune);
    }
    else if (bouton.addEventListener){
        bouton.addEventListener("click", fonction_commune, false );
    }
}
 
function fonction_commune() {
  new Ajax.Updater(un_element, 'page.php?' + params);
}
Et entre <BODY></BODY> :

Code :
1
2
3
4
5
<img class="bouton" id="Something" src="image.gif"/>
 
<script type="text/javascript">
AddEvent("Something");
</script>
sacroyant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 17h49   #4
Rédacteur/Modérateur
 
Avatar de marcha
 
Homme Marc Chappuis
Développeur Web
Inscription : décembre 2003
Messages : 1 535
Détails du profil
Informations personnelles :
Nom : Homme Marc Chappuis
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2003
Messages : 1 535
Points : 2 206
Points : 2 206
Citation:
Envoyé par LEK
L'approche initiale m'avais l'air pas si mal.
Maintenant tu peux aussi bien te créer un tableau à deux dimension
avec en dimension 1 l'id du bouton et en dimension 2
les paramètres que ta fonction requiert, non?
Oui, c'est une bonne idée. Mais elle implique d'ajouter des ids uniques pour
les boutons (ce qui n'est pas pratique dans mon cas, mais faisable)

Petite remarque pour sacroyant: le code que tu as écrit est existant
dans prototype, voir Event.observe. Et tu ne résouts pas mon problème,
la variable params n'a pas de valeur

Je reste ouvert à d'autres propositions
__________________
Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !
marcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h02.


 
 
 
 
Partenaires

Hébergement Web