|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
Bonjour,
Comment peut on récupérer dans un xmlService les champs issus d'une liste déroulante à choix multiples d'un formulaire Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
c'est pas possible avec ce type la.
utilise plutot checkbox.
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#3 | ||||||
|
Membre éclairé
![]() |
La réponse courte :
pas possible, il faut utiliser la technique avancée du pivot. La réponse longue Le Framework XMLCLX ne supporte pas le passage de multiples paramètres HTTP portant le mêmes noms. Voici la raison : En exemple, le code html utilisé : Code :
Lorsque le Framework dispatch la requete, il interprète les paramètres et les placent dans le Context, en fonction du nom. Il placera donc le champ test avec la valeur 1 une permiere fois dans le Context. Puis il placera le champ test avec la valeur 2 dans le Context. Le probleme... C'est que le Context est un tableau hashé qui ne supporte pas 2 champs portant le meme nom... La deuxième valeur écrase donc la première. Pour s'en sortir, il faut laisser tomber le <SELECT> mode multiple inutilisable et utiliser la technique du Pivot avec une liste de checkbox. Pour cela, vous construiser votre formulaire comme suit : Code :
Le xsl:for-each peut bien sûr etre remplacé par des templates match. Il permet de matcher sur tous les éléments que vous voulez voir apparaitre dans votre liste. Si vous n'avez pas cette liste dans le XML, à vous de la construire directement en placant correctement les <input type="checkbox"> Ensuite chaque champ porte un nom différent. Dans l'exemple, après construction par le for-each, le premier Item créera un <input type="checkbox" name="OPTION[1].ITEM_ID" value="1001" /> Lorsque vous validerez cette requete, le Framework construira un InputDoc avant l'éxécution du XMLService, qui contiendra la structure suivante : Code :
Voila !
__________________
Nicolas |
||||||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
OK. Mais j'avais opté pour une combo pour un soucis de place. Avec l'attribut size=1 cela s'intégrait très facilement dans ma page (en fait la combo est utilisé ici pour filtrer les lignes d'une table). Une checkbox m'oblige à modifier l'architecture de ma page ou alors à afficher cette checkbox dans une fenetre popup(?) (les contraintes sont plus importantes : javascript (obligatoire?),xmlservice supplémentaire, moins pratique et moins joli...).
|
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() |
Pour une interface coquette, il serait possible de placer les checkbox dans un div, et d'utiliser du javascript/css pour l'afficher ou pas, avec ou sans scrollbar, etc...
Il serait possible de recréer l'equivalent d'un <select> avec cette technique, mais effectivement, ca necessiterait un peu de html avancé... La popup n'est généralement pas conseillée, parce qu'on a toutes les chances de retrouver 50 fenetres IE ouvertes sur le bureau des utilisateurs. Les popups sont rarement la bonne solution...
__________________
Nicolas |
|
|
00
|
|
|
#6 | ||
|
Membre régulier
![]() Inscription : janvier 2003 Messages : 85 ![]() |
Si tu tiens absolument à utiliser une combobox en mode multiple, il te faudra parcourir le Context à la main. En effet, les valeurs sélectionnées dans ta combobox seront de cette forme :
test=1 test=4 Le Context ne permet pas, comme le dit Nicolas, de stocker plusieurs valeurs pour un champ portant le même nom. Ce sera à toi de parcourir tout le tableau du Context en testant le nom du champ : Code :
A+
__________________
Julien C. |
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() |
nop, comme le context est haché, le nom va donner la meme clé et donc va écraser la valeur précédente., il n'y a pas moyen de retrouver les anciennes valeurs portant le meme nom dans le Context.
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com