applel liste déroulante

Invité
Invité n'ayant pas de compte PHPfrance

10 déc. 2007, 15:35

Bonjour,

J'ai un formulaire name ="adminForm";
J'ai un champ texte name ="firstname";

J'arrive à atteindre le champ txt avec js en faisant:
var prenom = document.adminForm.firstname;
alert(prenom.name);
Par contre ça ne marche pas avec une liste déroulante name="situation[]" comme ceci:
<select name="situation[]">
	<option value=""> </option>
	<option value="Etudiant">Etudiant</option>
	<option value="En recherche d'emploi">En recherche d'emploi</option>
	<option value="En activité">En activité</option>
</select>
Et l'appel javascript pour afficher le nom de l'élément:
var sit = document.adminForm.situation;
alert(sit.name);
Comment réussir l'appel quand le nom d'une liste déroulante est un tableau?

Invité
Invité n'ayant pas de compte PHPfrance

10 déc. 2007, 15:51

j'ai aussi tenté

var sit = document.adminForm.situation[];
alert(sit.name);

Les deux essais me renvoient situation has no properties.

Invité
Invité n'ayant pas de compte PHPfrance

10 déc. 2007, 16:17

remarque:
ça aurait été plus simple si le nom de mon select n'avait pas de [] ou si j'utilisais un id pour désigner ma liste.

Le problème est que je suis dans un cms assez compliqué et je ne peux pas envisager de modifier le code qui génère cette liste.
Je suis donc obligé de passer par javascript pour atteindre l'élément, mais comment?

Eléphant du PHP | 445 Messages

10 déc. 2007, 16:28

Essayes comme ceci :
var sit = document.forms["nom_du_form"].elements["situation[]"] ;

ViPHP
ViPHP | 4039 Messages

10 déc. 2007, 16:33

euh, tu veux continuer de parler tout seul, ou on peut intervenir ? :lol:

(sinon, enregistre-toi, ça t'éviteras de reposter à chaque fois, et te permettra d'éditer ton message).

Quel situation peut avoir causé la décision de nommer un formulaire "situation[]" ?

Ce ne sont pas les brackets qui vont transformer le bazar en tableau..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Invité
Invité n'ayant pas de compte PHPfrance

10 déc. 2007, 17:20

tout d'abord merci de vos réponses.

Berzemus, je suis dans joomla et les composants avec lesquels je travaille sont complexes, notamment community builder qui me pose un pb ici.
Je n'en suis pas à me demander pourquoi les développeurs on fait ça (au passage, c des grosses têtes quand même).Je me contente de constater qu'ils utilisent des [] dans les noms, et j'essaye de m'adapter.

h0_noMan, ta suggesion renvoie undefined.

ViPHP
ViPHP | 4039 Messages

10 déc. 2007, 17:49

Autre solution tu regarde combien ton formulaire à d'éléments (disons que ton select est le 2ème élément), et puis tu fais quelque chôse comme ceci:

Code : Tout sélectionner

var sit = document.forms["nom_du_form"].elements[1] ;
ça devrait faire quelque chôse..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 445 Messages

10 déc. 2007, 17:52

J'ai teste ceci et cela fonctionne :
var index = document.forms["test"].elements["situation[]"].selectedIndex ;
var valeur = document.forms["test"].elements["situation[]"].options[index].value ;
alert("situation["+index+"] = "+valeur);