1er pt ok. 2ime Recuper tous les champs d'une liste

1er pt ok. 2ime Recuper tous les champs d'une liste - HTML/CSS - Programmation

Marsh Posté le 24-10-2002 à 11:51:52    

[quote]Voila, j ai une liste deroulante ou les gens peuvent choisir plus choses mais je ne sais pas comment faire pour recuperer les envoies choisis, quand j affiche le resultat je n ai que le dernier champ recuperé.[quote]
-----Done (merci GMS)
 
2/
est il possible de recuperer tous les champs d'une liste ?
ou  
 a chaque modif je voudrais qu'on force tous les champs de la liste personen[] a etre selectionné (seul moyen que je vois pour recuperer toutes les valeurs)


Message édité par Sebastien le 24-10-2002 à 16:24:34
Reply

Marsh Posté le 24-10-2002 à 11:51:52   

Reply

Marsh Posté le 24-10-2002 à 12:46:13    

Reply

Marsh Posté le 24-10-2002 à 14:07:59    

Oui et c la que ca coince, car j utilise un javascript et il a accete pas que mon nom contienne un []
 
j ai ca :
Deplacer(this.form.pers,this.form.personne)
 
mais si mon select s'appelle personnen[] ca marche plus :-(
 
Et autre chose,  y a t il une solution pour recuperer toutes les valeurs de la liste qu'ils soient selectionnés ou pas ?

Reply

Marsh Posté le 24-10-2002 à 14:16:57    

monSelect = "personne[]";
 
Puis tu y accèdes avec :
 
document.ton_formulaire.elements[monSelect]
 
Pour récupérer toutes les options de la liste il faut parcourir le tableau document.ton_formulaire.elements[monSelect].options[]


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 24-10-2002 à 14:42:01    

J avoue ne pas avoir saisi a 100% ce que tu me dis
 
j ai un script en haut de ma page

Code :
  1. function Deplacer(l1,l2) {
  2.  if (l1.options.selectedIndex>=0) {
  3.   o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);
  4.   l2.options[l2.options.length]=o;
  5.   l1.options[l1.options.selectedIndex]=null;
  6.  }


 
Puis du code :
 

Code :
  1. echo "<tr><td>$proj_pers:</td><td colspan=2>
  2. <select name='persone' multiple size='8' $read_o>\n";
  3. show_non_group_users($user_group, 0, 3);
  4. echo "</select>
  5. <INPUT type=button value=\">>>\" onClick=\"Deplacer(this.form.persone,this.form.personen)\">
  6. <BR><BR>
  7. <INPUT type=button value=\"<<<\" onClick=\"Deplacer(this.form.personen,this.form.persone)\">
  8. <select name='personen' multiple size='8' $read_o>\n";
  9. show_group_users($user_group, 0, 3);
  10. echo "</select></td></tr>\n";


 
Tout ca dans un formulaire.
Donc mes questions
1/ monSelect = "personne[]";  
je le mets dans mon second code dans des quotes js ?
 
2/ document.ton_formulaire.elements[monSelect].options[]
Ca c pas possible dans une autre page, apres l envoi du formulaire non ?

Reply

Marsh Posté le 24-10-2002 à 14:59:36    

a. Le nom de tes <select> doit contenir les [] :

<select name='personen[]' multiple size='8' $read_o>\n";


 
b. Ensuite j'appelerais la fonction comme ça :

onclick=\"Deplacer('personen[]','persone[]');\"


(parce que "this" c'est le <input> c'est pas le document html)
 
c. Enfin dans la fonction tu accèdes à tes <select> avec :

document.le_nom_de_ton_formulaire.elements[l1] et
document.le_nom_de_ton_formulaire.elements[l2]


 
 
Pour ta deuxième question ce n'est pas possible à moins de faire un script qui envoie toutes les valeurs du <select> avant la soumission. Mais dans ce cas on ne pourra pas distinguer les options qui auront été sélectionnées par l'utilisateur.


Message édité par gm_superstar le 24-10-2002 à 15:00:08

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 24-10-2002 à 15:10:40    

c. Enfin dans la fonction tu accèdes à tes <select> avec :

document.le_nom_de_ton_formulaire.elements[l1] et
document.le_nom_de_ton_formulaire.elements[l2]


[/citation]
 
Bon je suis une vraie quiche en js, alors je remplace mes l1 et l2 existant par ce que tu as marqué ?

Reply

Marsh Posté le 24-10-2002 à 15:11:43    

[citation]
c. Enfin dans la fonction tu accèdes à tes <select> avec :

document.le_nom_de_ton_formulaire.elements[l1] et
document.le_nom_de_ton_formulaire.elements[l2]


[/citation]
 
Bon je suis une vraie quiche en js, alors je remplace mes l1 et l2 existant par ce que tu as marqué ?
[/citation]
 
 
Edsit : Rhaaaaaaaaa je viens d essayer et ca amrche !!
 
Il me reste plus qu a trouvé comment recurperer toutes les valeurs.
 
Merci bcp en tout cas tu m as donné un veritable coup de main


Message édité par Sebastien le 24-10-2002 à 15:14:26
Reply

Marsh Posté le 24-10-2002 à 15:14:50    

Ben dans le corps de la fonction, au lieu d'utiliser l1, tu utilises document.le_nom_de_ton_formulaire.elements[l1]
 
Si tu trouves ça trop long à écrire tu peux utiliser des variables au début :
 
var liste1 = document.le_nom_de_ton_formulaire.elements[l1];
var liste2 = document.le_nom_de_ton_formulaire.elements[l2];
 
Et ensuite tu remplaces les l1 et l2 restant par liste1 et liste2.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 24-10-2002 à 15:24:18    

Allez je te sens chaud.
 
Donc voila en fait a chaque modif je voudrais qu'on force tous les champs de la liste personen[] a etre selectionné (seul moyen que je vois pour recuperer toutes les valeurs)

Reply

Marsh Posté le 24-10-2002 à 15:24:18   

Reply

Marsh Posté le 24-10-2002 à 17:09:25    

Bon avec ca :
this.frm.elements[l3].options.selectedIndex=1
 
j arrive a en choisir un, mais je voudrais pouvoir tous les prendre

Reply

Marsh Posté le 24-10-2002 à 17:36:10    

Ben pour faire tous les autres tu dois récupérer la longueur du tableau this.frm.elements[l3].options, faire une boucle afin de mettre tous les attributs this.frm.elements[l3].options[i].selected à true.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 25-10-2002 à 09:27:32    

Yes nickel ca, pas tres elegant comme methode mais super efficace !!

Reply

Sujets relatifs:

Leave a Replay

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