Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/02/2011, 17h04   #1
Membre confirmé
 
Avatar de Trini
 
Homme Pit
Dresseur de puce
Inscription : juillet 2005
Messages : 187
Détails du profil
Informations personnelles :
Nom : Homme Pit
Localisation : France

Informations professionnelles :
Activité : Dresseur de puce

Informations forums :
Inscription : juillet 2005
Messages : 187
Points : 231
Points : 231
Par défaut Select multiple - lecture JS et PHP

Bonjour,

J'ai un problème de syntaxe sur un champ de type <select> ou dans les traitements de récupération des valeurs sélectionnées.

J'ai par exemple une liste définie ainsi :
Code html :
1
2
3
 
<select name="maListe">
...

Pour récupérer les options sélectionnées en PHP, j'ai lu dans la FAQ PhP : ajouter les crochets pour traiter ce champ comme un tableau
Code html :
1
2
 
<select name="maListe[]">
OK pas de problème, ça marche impeccable !

Mais j'ai aussi besoin d'effectuer un traitement en JS sur onChange et là la syntaxe générale pour parcourir la liste est :
Code :
1
2
3
4
 
var frm=document.forms[0]
for (i=0; i<frm.maListe.options.length; i++) {
...
Dans ce cas j'ai l'erreur JS avec frm.maListe est Undefined, normal car le nom du Select est maListe[].

Evidement cette syntaxe ne fonctionne pas non plus
Code :
1
2
3
 
var frm=document.forms[0]
for (i=0; i<frm.maListe[].options.length; i++) {
Et si je retire les crochets c'est bien sûr en PhP que cela ne fonctionne plus.

Bref, comment faire pour que cela fonctionne en PhP ET en JS ? Elle est où mon erreur ?
Trini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 17h08   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
pourquoi traiter le select comme un tableau ?
tu as plusieurs select avec le même name ?

si c'est le cas coté js tu les attendras avec
Code :
frm.elements['maListe[]']
mais du coup tu obtiens une collection

Code :
frm.elements['maListe[]'][0]
etant le premier
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/02/2011, 17h17   #3
Membre confirmé
 
Avatar de Trini
 
Homme Pit
Dresseur de puce
Inscription : juillet 2005
Messages : 187
Détails du profil
Informations personnelles :
Nom : Homme Pit
Localisation : France

Informations professionnelles :
Activité : Dresseur de puce

Informations forums :
Inscription : juillet 2005
Messages : 187
Points : 231
Points : 231
A ta question
Citation:
pourquoi traiter le select comme un tableau ?
Pour récupérer la liste des options sélectionnées en PHP, comme il est dit dans la FAQ, dans une boucle Foreach

Et sinon merci pour ta réponse
Code :
1
2
 
frm.elements['maListe[]'].options.length
Complètement oublié elements[].....!! cela fonctionne !!

Merci !
Trini est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h43.


 
 
 
 
Partenaires

Hébergement Web