Javascript et options d'un select... - HTML/CSS - Programmation
Marsh Posté le 17-02-2005 à 16:28:11
excusez moi...je me suis trompé...j'ai corrige ma question...
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
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...
Marsh Posté le 17-02-2005 à 16:32:49
ahh ok j'ai compris....mais il renvoie koi le selectedindex??
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
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??
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...
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.
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??
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>
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