J'essaie de soumettre un formulaire à une servlet (java). Le formulaire a un tas de questions, chaque question a 4 boutons radio et l'utilisateur en sélectionne un. Je ne connais pas le nombre de questions qui seront dans le formulaire. Cela pourrait être 10, 15, 12 ... dépend de quelques autres critères. Ma question est quelle est la meilleure façon de récupérer la liste des choix que l'utilisateur a fait pour les questions sur le formulaire.comment soumettre un formulaire qui aura dynamiquement (inconnu) nombre de champs
Répondre
Une technique classique consiste à nommer les champs avec un préfixe commun, puis de les parcourir: q000, q001, q002, etc., jusqu'à ce que vous atteigniez celui qui n'est pas présent.
Un truc rapide qui me vient à l'esprit est de nommer tous les champs
"question_"+n
Et un type d'entrée cachée avec la valeur de n. Si le formulaire a un moyen de savoir combien de questions à présenter, il devrait avoir un moyen de définir la valeur de n.
Plus tard, vous récupérez juste valeur et que ...
n = new Integer(request.getParameter("number_of_question"));
for(int i = 0 ; i < n ; i++) {
list.add(request.getParameter("question_"+i));
}
C'est la première chose qui vient à l'esprit
Vous pouvez utiliser HttpServletRequest.getParameterNames() pour récupérer une énumération des noms de tous les éléments de formulaire dans la demande. Vous pouvez ensuite itérer sur l'énumération et demander une valeur individuelle pour chaque élément à l'aide de HttpServletRequest.getParameter (name). Si votre code HTML contient d'autres éléments FORM autres que les boutons radio d'option, utilisez la convention de dénomination astucieuse de ces boutons radio pour que, lors de l'énumération des noms de paramètres, vous sachiez quoi demander.
Un exemple.
Si votre formulaire contient deux questions avec les options suivantes:
Question 1:
<input type="radio" name="question1" value="option1">
<input type="radio" name="question1" value="option2">
<input type="radio" name="question1" value="option3">
Question 2:
<input type="radio" name="question2" value="option1">
<input type="radio" name="question2" value="option2">
<input type="radio" name="question2" value="option3">
Dans votre servlet,
Enumeration e = request.getParameterValues();
while(e.hasMoreElements()){
String name = (String)e.nextElement();
if(name.startsWith("question"){
String value = request.getParameter(name);
//your logic here
}
}
Une autre de faire la même chose est:
Dans votre servlet,
int maxQuestionNumber = Integer.parseInt (request.getParameter ("maxQuest ionNumber ")); // cela devrait être une variable cachée dans votre formulaire HTML représentant les questions max dans votre formulaire.
for(int i=1;i<=maxQuestionNumber;i++){
String value = request.getParameter("question"+i);
//your logic here..
}
Je ne suggère aucune solution de contournement. le ServletRequest.getParameterMap() serait utile dans ce scenerio. Les clés de la carte seront de type String, et les valeurs seront de type String [].
Par conséquent, vous pouvez boucle très facilement grâce à la carte en utilisant la boucle foreach quelque chose comme ça,
for(Map.Entry<K, V> entry : map.entrySet()){
..
if(entry.getValue().length > 1){
//means the choices not the question
}else{
//means the question not the choices
}
}
J'espère que cela aiderait.
Vous pouvez simplement utiliser JSON, et donc passer une chaîne à la servlet, qui peut gérer une très longue chaîne si vous utilisez POST. De cette façon, vous pouvez passer ce que vous voulez, même si les paramètres sont complexes.
- 1. Soumettre des champs de saisie de formulaire ajoutés avec javascript
- 2. Soumettre par programme un formulaire
- 3. formulaire wont soumettre avec jquery formulaire soumettre lorsque certains champs sont désactivés
- 4. soumettre champs désactivés
- 5. VB.Net Enum ToString renvoie un nombre inconnu
- 6. Comment puis-je empiler un nombre inconnu de répéteurs ASP.NET?
- 7. comment réinitialiser un formulaire après soumettre?
- 8. Comment soumettre un formulaire en utilisant onChange
- 9. Comment soumettre un formulaire avec jQuery?
- 10. Soumettre un formulaire par programme
- 11. Comment soumettre un formulaire automatiquement à l'aide HttpWebResponse
- 12. Comment concevez-vous un formulaire avec beaucoup de champs dynamiques?
- 13. définir dynamiquement nombre d'instances de formulaire et enregistrer tout comme csv en utilisant php
- 14. Pivot SQL Server 2005 sur un nombre inconnu de colonnes
- 15. Comment puis-je ajouter dynamiquement des champs de saisie à un formulaire?
- 16. Générer et soumettre un nombre dynamique d'objets dans un formulaire avec Django
- 17. excel: représenter avec un nombre inconnu de données
- 18. Soumettre problème de formulaire ... Entrée
- 19. Comment puis-je gérer un envoi de formulaire créé dynamiquement?
- 20. Comment soumettre un formulaire complexe en utilisant AJAX de Jquery?
- 21. Formulaire Web Infopath - Soumettre et changer d'affichage
- 22. urllib2: soumettre un formulaire puis rediriger
- 23. Comment calculer la différence de deux champs sur le formulaire soumettre Ruby on Rails
- 24. UIActionSheet - Nombre inconnu de boutons, Comment savoir quoi appeler?
- 25. Soumettre un formulaire d'inscription à distance
- 26. Comment créer et soumettre un formulaire en utilisant Java Script
- 27. Comment soumettre un formulaire en boucle dans Selenium IDE
- 28. Default soumettre style bouton formulaire
- 29. Comment utiliser 400 champs dans un formulaire MS-Access?
- 30. Comment soumettre un formulaire via jQuery et rafraîchir PartialView