-
submit des select
bonjour ts le monde,
j'ai une html:select ds une jsp, et je veux que tous les éléments de cette liste seront envoyés à une action, puis à une autre jsp, sans sélectionner aucun élément.
à noter que les éléments de cette select seront remplis à partir d'un autre select à l'aide d'un bouton ayant un événement javascript onClick.
est c'est possible? est ce que html:select n'envoie que les éléments selectionnés après le submit??
astuce??
et merci d'avance.
-
Je n'ai pas bien compris ce que tu veux.
Pourquoi ne mets tu pas ta liste de select dans la session, comme ca, tu peux la récupérer n'importe ou (il faut penser a l'enlever de la session quand tu n'en as plus besoin).
Sache que dans un select, seul la propriété selectionnée est envoyée dans la requete.
-
je met bien ma select ds une session ou une request, mais ce que je veux c'est s'il y a une astuce qui va me permettre d'envoyer ts les éléments de ma select sans que l'utilisateur va procéder manuellement à selectionner ces éléments (car j'aurais une longue liste).
j'espère que c'est claire maintenant!
merci
-
J'essai, mais je comprend rien désolé.
Essai de t'appliquer dans la rédaction de ton message (fait un dessin ?).
Je résume :
Tu as un select sur ta JSP avec plein d'option (ce select doit etre une list qui se trouve dans ton Form normalement),
L'utilisateur selectionne une option et soumet le formulaire,
Dans l'action suivante tu veux recevoir ET l'option selectionné ET la liste des options de ta liste select ?
C'est ca ton problème ?
Montre nous ton code, ca sera plus simple.
Edit : tu utilises Struts ?
-
dernière question: oui, j'utilise le framework struts.
je réexplique: je veux que ts les éléments de mon select soient transférés à mon action, sans que l'utilisateur va les séléctionner.
voici le fragement du code:
<html:form action="/validerClients" name="clientsForm" type="com.hps.struts.form.ClientsForm">
<p><strong><em>Liste des clients choisis:</em></strong></p>
<table width="75%" border="0">
<tr align="center">
<td><strong>Client Code</strong></td>
<td><strong>Family Name</strong></td>
<td><strong>First Name</strong></td>
</tr>
<tr align="center">
<td><html:select property="clientCode" multiple="true" onchange="SelectOthers(0,1,2,2)"></html:select></td>
<td><html:select property="familyName" multiple="true" onchange="SelectOthers(1,0,2,2)"></html:select></td>
<td><html:select property="firstName" multiple="true" onchange="SelectOthers(2,0,1,2)"></html:select></td>
</tr>
</table>
<p>
<html:submit value="OK"/>
</p>
</html:form>
j'ai ici trois select et je veux les renvoyé en meme temps en submittant. donc lorsque on sélectionne un select l'autre se déselectionne (et ça sera fastidieux pr l'utilisateur).
les éléments de ces select sont remplis à l'aide d'un bouton ajouter à partir d'autres select.
<input type="button" value="Ajouter" onClick='DeplacerTous(document.forms[1].elements[0],document.forms[2].elements[0],
document.forms[1].elements[1],document.forms[2].elements[1],
document.forms[1].elements[2],document.forms[2].elements[2])'/>
I hope that is now clear!
merci
-
voici la méthode execute de mon Action:
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
System.out.println("1111111");
ClientsForm clientsForm=(ClientsForm) form;
if(clientsForm==null) System.out.println("stooooop");
Vector clientCode=clientsForm.getClientCode();
Vector familyName=clientsForm.getFamilyName();
Vector firstName=clientsForm.getFirstName();
Vector clients=new Vector();
try{
Iterator it2=familyName.iterator();
Iterator it3=firstName.iterator();
for(Iterator it1=clientCode.iterator();it1.hasNext();){
String cc=(String) it1.next();
String famName=(String) it2.next();
String firName=(String) it3.next();
Client client=new Client();
client.setClientCode(cc);
client.setFamilyName(famName);
client.setFirstName(firName);
clients.add(client);
}
}catch(Exception ex){
ex.printStackTrace();
}
System.out.println("222222222");
Vector cartes=Clients.getCartes(clients);
request.setAttribute("clients",clients);
request.setAttribute("cartes",cartes);
return mapping.findForward("success");
}
et voici l'exception qui me renvoie losque je renvoie mes trois select avec un élément selectionné pr chacune (d'ailleurs ce n'est pas ce que j veux):
exception javax.servlet.ServletException: BeanUtils.populate.....
cause mère java.lang.IllegalArgumentException: argument type mismatch sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)..........