Javascript et options d'un select...

Javascript et options d'un select... - HTML/CSS - Programmation

Marsh Posté le 17-02-2005 à 16:15:09    

Bonjour,
 
Est il possible de mettre des fonctions javascripts sur les etats d'un <option>??
 
Je veux dire par la...est il possible par ex d ecrire un truc du genre :
 
<select name="test">
  <option onclick="change_name();" value="test">coucou</option>
  <option onclick="change_name();" value="test2">coucou2</option>
</select>
 
ou alors ne peut on ecrire que :
 
<select name="test" onchange="change_name();">
  <option value="test">coucou</option>
  <option value="test2">coucou2</option>
</select>
 
???
 
Merci


Message édité par kissskoool le 17-02-2005 à 16:31:09
Reply

Marsh Posté le 17-02-2005 à 16:15:09   

Reply

Marsh Posté le 17-02-2005 à 16:28:11    

excusez moi...je me suis trompé...j'ai corrige ma question...

Reply

Marsh Posté le 17-02-2005 à 16:28:36    

ce serait plutôt:
<select name="test" onchange="change_name();">
<option value="test">coucou</option>
<option value="test2">coucou2</option>
</select>
Ensuite, pour savoir lequel est sélectionné, ben y a document.forms[0].test.selectedIndex qui est pas mal ;)

Reply

Marsh Posté le 17-02-2005 à 16:29:23    

D'ailleurs, tu peux mettre un onclick même.

Reply

Marsh Posté le 17-02-2005 à 16:32:00    

ok j'ai recorrige...
 
sinon ca fait quoi exactement le selectedIndex???
 
ca a l air pas mal effectivement...

Reply

Marsh Posté le 17-02-2005 à 16:32:49    

ahh ok j'ai compris....mais il renvoie koi le selectedindex??

Reply

Marsh Posté le 17-02-2005 à 16:34:16    

:) le selectedIndex te donne l'index de l'option qui est sélectionnée.
Ainsi tu peux via document.forms[0].test.options[document.forms[0].test.selectedIndex].value (ou text) récupérer la valeur ou le text.
Je te conseille de trouver un site de réféence sur le javascript et de lire un peu de doc :)

Reply

Marsh Posté le 17-02-2005 à 16:46:56    

ahhh ok c super cool comme truc...merci bcp LeMicky... ;)
 
Mais en fait je ne sais pas si je vais dans le bon sens pour trouver la solution a mon pb...
 
Si tu le permets je te situe le soucis :
 
J'ai un select dont les options sont creees en fonction du contenu d'une base de donnees...
cad un truc comme ca :
 
<select name="test">
<?
while ($row_data = mysqli_fetch_assoc($temp_data))
{
?>
<option value="<?print $row_data['id']?>"><?print $row_data['name']?></option>
<?
}
?>
</select>
 
...et a cote de ce select j'ai un input du genre :
 
<input type=text name=age value="">
 
et dans ce input je voudrais mettre $row_data['age'] a chaque fois qu'un "name" est selected???
 
je me fais comprendre...ou c'est peu clair??

Reply

Marsh Posté le 17-02-2005 à 16:48:40    

Le pb c'est que je ne sais pas comment faire le lien entre l'option choisie et ce que je dois ecrire dans le input...

Reply

Marsh Posté le 17-02-2005 à 16:54:10    

C'est clair, et il est clair que tu ne parviens pas à voir ce qu'il faut faire côté serveur et côté client (en gros, côté php et côté purement javascript).
T'as deux solutions : une super easy mais pas la plus élégante, une autre, un poil plus complexe mais plus élégante.
La première :
<select name="test" onchange="changeAge();">  
<?  
while ($row_data = mysqli_fetch_assoc($temp_data))  
{  
?>  
<option value="<?echo $row_data['id']."-".$row_data['age']?>"><?print $row_data['name']?></option>  
<?  
}  
?>  
</select>
=> <script> changeAge() {
txt=document.forms[0].test.options[document.forms[0].test.selectedIndex].value;
document.forms[0].age.value=txt.substr(txt.indexOf("-" )+1);
}
</script>
Alors si ça ne fonctionne pas sur le onchange (il prend l'ancienne valeur du selectedIndex je crois... à tester, tu mets un onclick plutôt)
 
2ème solution : Sinon ben tu crées un tableau javascript dans ton php ou ton tab[id]=age.
genre en php
<script>
tab=new Array();
<? while (...) {?>
tab[<?echo $row_data['id'];?>]="[<?echo $row_data['age'];?>";
<?}?>
et après tu utilises ton tab.


Message édité par LeMicky le 17-02-2005 à 16:59:54
Reply

Marsh Posté le 17-02-2005 à 16:54:10   

Reply

Marsh Posté le 17-02-2005 à 17:36:20    

je peux le creer n'importe ou ce tableau??
Je peux le creer juste avant mon select??
 
 
 

Reply

Marsh Posté le 18-02-2005 à 10:26:33    

même pendant, tu mets la création de ton tableau dans une variable php genre:
$tabjs.="tab[".$row_data['id']."]=".$row_data['age'].";\n";
Comme ça tu n'as qu'une boucle à faire.
Et ensuite tu écris ton $tabjs dans un tag javascript :
<script>
<?=$tabjs;?>
</script>


Message édité par LeMicky le 18-02-2005 à 10:27:21
Reply

Sujets relatifs:

Leave a Replay

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