onchange et class

guy
Eléphant du PHP | 134 Messages

25 juin 2005, 18:16

Bonjour
Je voudrait dans un select grace a la fonction onchange de JS modifier la class css de ce meme select . Est ce possible ?
<form action="test.php" method="post">
<select class="couleurbase" onchange?????????? >
<option value="couleur1">1</option>
<option value="couleur2">2</option>
<option value="couleur3">3</option>
<option value="couleur4">4</option>
<option value="couleur4">4</option>
</select></form>
donc le but serait de changer la classe couleurbase en clouleur2 si le choix 2 est selectionné .
Merci Guy[/code]

Mammouth du PHP | 19672 Messages

25 juin 2005, 19:55

oui, : ajoute un attribut id à ta balise select.: exemple:
<form action="test.php" method="post">
  <select class="couleurbase" style="background-color: #ccccff" onchange="this.style.backgroundColor='#ccffcc'">
    <option value="couleur1">1</option>
    <option value="couleur2">2</option>
    <option value="couleur3">3</option>
    <option value="couleur4">4</option>
    <option value="couleur4">4</option>
  </select>
</form>
Note que pour tester, j'ai intégré le style de couleur directement dans la balise, mais ça devrait fonctionner aussi bien si le style est dans une feuille externe.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

guy
Eléphant du PHP | 134 Messages

26 juin 2005, 09:58

on y est presque mais je calle un fois de plus:j'ai essayé le code si dessous pour recuperer la value de chaque option dans le onchange mais manifestement ca marche pas
<select  name="fields_color"  onchange="this.style.backgroundColor='this.value'">
<option selected style="background-color: 33FFFF" value="33FFFF">a</option>
<option style="background-color: 00FFFF" value="00FFFF">b</option>
<option style="background-color: 3300FF" value="3300FF">c</option>
<option style="background-color: 3333FF" value="3333FF">d</option>
<option style="background-color: 3366FF" value="3366FF">e</option>
<option style="background-color: 3399FF" value="3399FF">f</option>
<option style="background-color: 33CCFF" value="33CCFF">g</option>
merci
Guy

Mammouth du PHP | 19672 Messages

26 juin 2005, 10:10

Ok, je vois, mais je ne suis pas certain que ce soit bon: le style de couleur concerne la balise <select> pas les <option> individuelles.

Ceci dit, je n'affirmerai rien de façon péremptoire, il me semble que j'ai vu un truc dans ce genre il y a quelques mois, il faudrait que je fasse une recherche Google , Il faudrait aussi vérifier la doc CSS. En principe, la propriété background-color concerne tous les éléments, mais c'est au niveau de la structure particulière de l'ensemble <select><option> que ça se passe. :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

26 juin 2005, 10:15

Par contre il y a une erreur dans la balise <select>: tu traites la valeur this.value comme une chaine de caractère au lieu de récupérer la valeur sélectionnée: modifie comme suit:
<select  name="fields_color"  onchange="this.style.backgroundColor=this.value">
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: