# Problem mit Checkboxen im Servlet erkennen



## skuki (21. Apr 2015)

Hallo, 

ich fange gerade mit der EE Programmierung an und habe eine erste Frage. 

ich habe eine jsp Quiz Seite. In dieser habe ich 5 sections mit jeweils 5 Antwortmöglichkeiten. 
HTML Code sieht wiefolgt aus: (Stellvertretend hier 2 Sections)


```
<sectionclass="questioncategory"aria-labelledby="webheading">
 
                  <h3id="webheading"class="tile category-title"><spanclass="accessibility">Kategorie: </span>Web</h3>
 
                  <ol class="category_questions">
 
                    <li><inputname="question_selection"id="question_10"value="10"type="radio"/><labelclass="tile clickable"for="question_10">€ 100</label></li>
 
                    <li><inputname="question_selection"id="question_11"value="11"type="radio"/><labelclass="tile clickable"for="question_11">€ 200</label></li>
 
                    <li><inputname="question_selection"id="question_12"value="12"type="radio"/><labelclass="tile clickable"for="question_12">€ 500</label></li>
 
                    <li><inputname="question_selection"id="question_13"value="13"type="radio"/><labelclass="tile clickable"for="question_13">€ 750</label></li>
 
                    <li><inputname="question_selection"id="question_14"value="14"type="radio"/><labelclass="tile clickable"for="question_14">€ 1000</label></li>
 
                  </ol>
 
              </section>
 
              <sectionclass="questioncategory"aria-labelledby="sportheading">
 
                  <h3id="sportheading"class="tile category-title"><spanclass="accessibility">Kategorie: </span>Sport</h3>
 
                  <ol class="category_questions">
 
                    <li><inputname="question_selection"id="question_15"value="15"type="radio"/><labelclass="tile clickable"for="question_15">€ 100</label></li>
 
                    <li><inputname="question_selection"id="question_16"value="16"type="radio"/><labelclass="tile clickable"for="question_16">€ 200</label></li>
 
                    <li><inputname="question_selection"id="question_17"value="17"type="radio"/><labelclass="tile clickable"for="question_17">€ 500</label></li>
 
                    <li><inputname="question_selection"id="question_18"value="18"type="radio"/><labelclass="tile clickable"for="question_18">€ 750</label></li>
 
                  </ol>
 
              </section>
```

1. Problem: da ich den Typ radio verwende und alle den selben Namen haben, kann ich immer nur jeweils eine Antwortmöglichkeit auswählen. Gibt es hier eine Lösung?

2. Problem, wenn ich jeder Antwortgruppe einen Namen gebe, muss ich im Servlet doch 5 Abfragen haben alla: 


```
if(request.getParameter("question_selection_sportheading") != null){
			String answer_sportheading = request.getParameter("question_selection_sportheading");
		}
```

Gibt es hier nicht eine bessere Lösung?

Dachte ich kann - wenn das name - Attribute überall gleich ist - die Antworten in ein Array mittels getParameterValues speichern und dann in der Java Bean die Lösungen rausfiltern. 

Oder funktioniert das ganze komplett anders? :rtfm:

Generell kann ich ja auch nur das value mittels .equals() abfragen oder?


Würde mich über eine kleine Hilfe sehr freuen  
lg


----------



## MisterBu (21. Apr 2015)

Das kannst du besser über ein SELECT machen. Mal ein JSP Beispiel dafür:

```
<select name="vonmonat">
<%
 for (int i=0;i<12;i++)
 {
  int j = i + 1;
  out.println("<option value=\"" + j + "\" selected>" + j + "</option>");
 }
%>
</select>
```


----------



## skuki (21. Apr 2015)

Hallo, 

vielen Dank für deine Antwort das stimmt natürlich und wäre wirklich besser. 

Komme ich bei einem Feld auch auf die ID und nicht nur auf den value?

lg


----------



## MisterBu (21. Apr 2015)

Weiß nicht so recht was du mit ID meinst. Auswerten kannst du es dann wie gehabt mit:

```
String vonmonat = request.getParameter("vonmonat");
```
Der String vonmonat ist dann der String 1,2,3,... oder 12. Du bekommst per HTTP grundsätzlich nur Strings zurück.
Kannst du aber leicht in eine Zahl umwandeln.

```
int vm = new Integer(vonmonat).intValue();
```


----------

