Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3613 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Ajouter des champs options à mon select [ - Job's Done - ]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] Ajouter des champs options à mon select [ - Job's Done - ]

n°225508
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 11:38:08  profilanswer
 

voici le code que j'ai :  
 

<script language="javascript"><!--
 
var R01= new Array("Agriculture","Pêche","Navigation maritime et fluviale" );
 
function combo(Rub) {
var select=window.document.formcv2.Rubrique.selectedIndex;
window.document.formcv2.SRubrique.write("<option>" + select + "</option>" );   [#ff0000]<-- ligne 32[/#ff0000]
}
 
// -->
</script>
</head>
<body>
 
<form name="formcv2" method="post" action="cv3.php">
 
<select name="Rubrique" class="Field-Caps" onChange="combo('Rub')";>
 <option>----- votre secteur d'activité -----</option>
 <option value="R01">agriculture, pêche, navigation maritime et fluviale</option>
</select>
 
<select name="SRubrique" class="Field-Caps">
</select>
 
</form>
</body>
</html>


 
quand je fait ça, il me dit :  
Erreur ligne 32 : Cet objet ne gère pas cette propriété ou cette méthode
 
en faite, ce que je voudrais, c'est qu'il m'ajoute les valeurs qui se trouvent dans mon Array en fonction de ce qui est choisis par le 1er select...
mais je ne connais pas la syntaxe excate.
de plus, je ne sais pas comment lui dire :  

Code :
  1. while (une valeur dans l'array) {
  2. tu ajoute les valeurs en tant que <option></option>
  3. }


Message édité par xkamui le 09-10-2002 à 16:17:16
mood
Publicité
Posté le 09-10-2002 à 11:38:08  profilanswer
 

n°225533
_Mac_
Posté le 09-10-2002 à 12:07:26  profilanswer
 

Pour rajouter des options à la fin, fais un truc du genre :
 

Code :
  1. var select = window.document.formcv2.Rubrique;
  2. select.options[select.options.length] = new option("texte", "value" );

n°225544
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 12:22:50  profilanswer
 

petite mise a jour du script :  
 

Code :
  1. <html>
  2. ...
  3. var Rub = new Array("R01","R02" );
  4. function combo() {
  5. var select = window.document.formcv2.Rubrique;
  6. var s = select.selectedIndex;
  7. for (var i=0;i<Rub[s].length;i++) {
  8. var txt = Rub[s];
  9. select.options[select.options.length] = new options(txt[i], "S" + txt + i);   <-- ligne 31
  10. }
  11. }
  12. </head><body>
  13. <select name="Rubrique" class="Field-Caps" onChange="combo()";>
  14. ...
  15. </body></html>


 
message d'erreur :  
ligne 31 : 'options' est indéfini


Message édité par xkamui le 09-10-2002 à 12:25:00
n°225560
lorill
Posté le 09-10-2002 à 12:49:47  profilanswer
 

xkamui a écrit a écrit :

petite mise a jour du script :  
 

Code :
  1. select.options[select.options.length] = new Option(txt[i], "S" + txt + i);
  2. }


 




 
et les PM ca le fait pas  :non:

n°225567
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 13:08:27  profilanswer
 

ok, soz pour le PM
 
mais j'ai donc fait ce qui était écrit : GÉNIAL, plus d'erreur...
 
maintenant, le tout c'est que je réussisse à écrire quelque chose, car rien ne s'affiche dans mon select...  :cry:

n°225575
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 13:27:21  profilanswer
 

voici où j'en suis :  
 
j'ai fait quelques tests avec des document.write :  
 

Code :
  1. function combo() {
  2. var select = window.document.formcv2.Rubrique;
  3. var s = select.selectedIndex;
  4. for (var i=0;i<=Rub[s].length;i++) {
  5. var txt = Rub[s];
  6. //select.options[select.options.length] = new Option(txt[i], "S" + txt + i);  
  7. document.write("s => " + s + "<br>" );
  8. document.write("Rub[s] => " + Rub[s] + "<br>" );
  9. document.write("i => " + i + "<br>" );
  10. document.write("txt => " + txt + "<br>" );
  11. document.write("txt[i] => " + txt[i] + "<br><br><br>" );
  12. }
  13. }


 
seulement, deux petits problèmes à ça
 
1. voici les résultats :  

s => 15                [#0000ff]<-- ça c'est bon[/#0000f]
Rub[s] => R15          [#0000ff]<-- ça c'est bon[/#0000ff]
i => 0                 [#0000ff]<-- ça c'est bon[/#0000ff]
txt => R15             [#0000ff]<-- ça c'est bon[/#ff0000]
txt[i] => undefined    [#ff0000]<-- ça c'est pas très bon[/#ff0000]


 
en effet, normalement, txt[i] devrais avoir la valeur correspondante à son index dans le tableau créée plus tôt (voir haut du topic).
 
2. quelque soit l'index choisi, la valeur de Rub[s].length est égale à 3... alors que pour certains index, la valeur devrait être de 1...


Message édité par xkamui le 09-10-2002 à 13:28:19
n°225587
_Mac_
Posté le 09-10-2002 à 13:54:44  profilanswer
 

lorill a écrit a écrit :

 
 
et les PM ca le fait pas  :non:  




 
C'est quoi; "les PM" ???

n°225590
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 13:55:33  profilanswer
 

Private Messages... mais passons, lol

n°225596
lorill
Posté le 09-10-2002 à 14:10:26  profilanswer
 
n°225611
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 14:29:06  profilanswer
 


 
ok, mais ça ne répond pas trop aux nouvelles questions...

mood
Publicité
Posté le 09-10-2002 à 14:29:06  profilanswer
 

n°225614
lorill
Posté le 09-10-2002 à 14:34:41  profilanswer
 

euh ton Rub, c'est le tableau qui contient des chaines ?
et Rub[index].length ca passe ? faudrait mettre .length() plutôt.  
Ou alors j'ai encore loupé la moitié du message  :??:

n°225620
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 14:41:48  profilanswer
 

voici :  
 

Code :
  1. var Rub = new Array("","R01","R02" );
  2. var R01 = new Array("Agriculture","Pêche","Navigation maritime et fluviale" );
  3. var R02 = new Array("Agroalimentaire","Habillement, Cuir, Textile","Bois, Ameublement, Papier-carton","Industrie graphiques" );
  4. var s = window.document.formcv2.Rubrique.selectedIndex;


 
Rub[s] est donc égal à vide ou R01 ou R02.
jusque là, pas de pb
par contre,e nsuite, je met ce valeur dans une variable txt
et dans un for, je dis :  
txt[i] (où txt vaut vide ou R01 ou R02 et i est une valeur incrémentée)... et là, crac (ou patatra pour certain :)) ça me dit que txt[i]=undefined

n°225627
lorill
Posté le 09-10-2002 à 14:49:53  profilanswer
 

xkamui a écrit a écrit :

 
txt[i] (où txt vaut vide ou R01 ou R02 et i est une valeur incrémentée)... et là, crac (ou patatra pour certain :)) ça me dit que txt[i]=undefined




 
ben c'est normal, vu tu as i <= a la taille du texte...  
txt = "RS0";
txt.length() => 3
txt[0] => R
txt[1] => S
txt[2] => 0
txt[3] => BLAM !

n°225633
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 14:56:47  profilanswer
 

ahhhhh ok.....  :pt1cable:  
 
alors comment je peux lui dire : longueur du nombre d'entrée dans mon tableau (array) ??

n°225637
lorill
Posté le 09-10-2002 à 15:15:09  profilanswer
 

xkamui a écrit a écrit :

ahhhhh ok.....  :pt1cable:  
 
alors comment je peux lui dire : longueur du nombre d'entrée dans mon tableau (array) ??




 
uh ? ca veut dire quoi "longueur du nombre d'entrée" ?  
si comme je le pense du veux dire nombre d'entrées du tableau, c'est tout simplement leTableau.length

n°225683
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 16:01:03  profilanswer
 

voilà ma nouvelle fonction :  

Code :
  1. function combo() {
  2. // définition du formulaire
  3. var objform = window.document.formcv2;
  4. // définition du numéro du choix
  5. var s = objform.Rubrique.selectedIndex;
  6. // reconnaissance du tableau
  7. var tablo = eval (Rub[s]);
  8. for (var i = 0; i<tablo.length; i++) {
  9. var newoption = new Option(tablo[i], "S" + Rub[s] + i);
  10. objform.SRubrique.options[i+1] = newoption;
  11. }
  12. }


 
par contre un dernier problème (enfin j'éspère)...
il se trouve que, si je choisis un index avec 5 valeurs (a,b,c,d,e), les champs de l'autre select sont correctement només :  

Code :
  1. <o>a</o>
  2. <o>b</o>
  3. <o>c</o>
  4. <o>d</o>
  5. <o>e</o>


 
par contre, si je prend un autre index dans la foulée, avec 3 valeurs (1,2,3), ça change pas tout :  

Code :
  1. <o>1</o>
  2. <o>2</o>
  3. <o>3</o>
  4. <o>d</o>
  5. <o>e</o>


ma question est simple, comment mettre un reset sur le champ SRubrique, que je placerais, je pense, avant mon 'for'


Message édité par xkamui le 09-10-2002 à 16:01:36
n°225687
lorill
Posté le 09-10-2002 à 16:02:58  profilanswer
 

Srubrique.options.length = 0 devrait suffire

n°225692
xkamui
Their Destiny Was Foreordained
Posté le 09-10-2002 à 16:06:31  profilanswer
 

j'ai mis objform.SRubrique.length = 0; et ça marche
 
arghh grilled lol (mais content de commencer à comprendre...)


Message édité par xkamui le 09-10-2002 à 16:07:28

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Ajouter des champs options à mon select [ - Job's Done - ]

 

Sujets relatifs
swing : inputDialog avec 2 champs ...Désactiver l'HTML [ - Job's Done - ]
[php/Mysql] Problème avec SELECT COUNT(*)datagrid et champs :(
Récupération d'un SELECT MULTIPLEAccess - VB gestion champs remplis ou non
[MySQL] Choix entre 2 types de champs[ASP] Trouver les noms de champs d'une table access
Encore besoin d'aide sur les regexp please ! [done !] 
Plus de sujets relatifs à : [JS] Ajouter des champs options à mon select [ - Job's Done - ]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)