2013-05-15 7 views
7

Ho diverse caselle di controllo in un modulo Voglio solo verificare se sono selezionate o meno.Trova se le caselle di controllo sono spuntate all'interno di un servlet

Se selezionato ho bisogno di memorizzare il loro id nel database (che posso farlo). Ma la mia domanda è come determinare se sono controllati o meno invece di controllare ogni casella di controllo alla volta. Devo controllare se è selezionato o meno all'interno di un servlet.

Questo è il mio codice

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
Role Id<input type="text" name="roll_id"/><br> 
Role Name<input type="text" name="roll_name"/><br> 
Role Description<textarea name="roll_desc"></textarea><br> 
<br> 
<br> 

Screen1<br> 

tab1<br> 

<input type="checkbox" name="s1_t1_view" value="s1_t1_view" >view<br> 
<input type="checkbox" name="s1_t1_add" value="s1_t1_add" >add<br> 
<input type="checkbox" name="s1_t1_edit" value="s1_t1_edit" >edit<br> 
<input type="checkbox" name="s1_t1_delete" value="s1_t1_delete" >delete<br> 

tab2<br> 

<input type="checkbox" name="s1_t2_view" value="s1_t2_view" >view<br> 
<input type="checkbox" name="s1_t2_add" value="s1_t2_add" >add<br> 
<input type="checkbox" name="s1_t2_edit" value="s1_t2_edit" >edit<br> 
<input type="checkbox" name="s1_t2_delete" value="s1_t2_delete" >delete<br> 



Screen2<br> 

tab1<br> 

<input type="checkbox" name="s2_t1_view" value="s2_t1_view" >view<br> 
<input type="checkbox" name="s2_t1_add" value="s2_t1_add" >add<br> 
<input type="checkbox" name="s2_t1_edit" value="s2_t1_edit" >edit<br> 
<input type="checkbox" name="s2_t1_delete" value="s2_t1_delete" >delete<br> 

tab2<br> 

<input type="checkbox" name="s2_t2_view" value="s2_t2_view" >view<br> 
<input type="checkbox" name="s2_t2_add" value="s2_t2_add" >add<br> 
<input type="checkbox" name="s2_t2_edit" value="s2_t2_edit" >edit<br> 
<input type="checkbox" name="s2_t2_delete" value="s2_t2_delete" >delete<br> 
<input type="submit" name="sumbit" text="submit"> 
</body> 
</html> 

Ma nel mio codice ho diversi caselle di controllo. Ho bisogno di hardcode per ogni casella di controllo. C'è modo di metterlo in un ciclo e controllare tutte le caselle di controllo?

+1

Se è necessario utilizzare un gruppo di caselle di controllo, l'attributo 'nome' deve essere uguale per ogni casella di controllo raggruppata! – Xaltar

+0

Sì, ha funzionato. Grazie . –

risposta

10

Per semplificare, è possibile utilizzare l'attributo name per ottenere i dati poiché si utilizza un nome diverso per ogni casella di controllo.

In Servlet:

String[] s1_t1_view = request.getParameterValues("s1_t1_view"); 
String[] s1_t1_add = request.getParameterValues("s1_t1_add"); 

Se si desidera utilizzare gruppo di casella di controllo per dare all'utente una scelta tra più valori, è necessario iterare il gruppo nel servlet. È possibile utilizzare questo:

In HTML: (stesso nome = stesso gruppo)

<input type = "checkbox" name = "s1_t1" value = "s1_t2_view" >View <br> 
<input type = "checkbox" name = "s1_t1" value = "s1_t2_add" >Add <br> 
<input type = "checkbox" name = "s1_t1" value = "s1_t2_edit" >Edit <br> 
<input type = "checkbox" name = "s1_t1" value = "s1_t2_delete" >Delete<br> 

In Servlet:

String[] results = request.getParameterValues("s1_t1"); 
for (int i = 0; i < results.length; i++) { 
    System.out.println(results[i]); 
} 
+0

Puoi condividere un codice di esempio? –

+0

Sì, questo ha aiutato. Grazie . –

4

È possibile utilizzare

String[] checked = request.getParameterValues("checkboxName"); 

e quindi controllare il checked valore

+0

Ma nel mio codice ho diverse caselle di controllo. Ho bisogno di un hardcode per ogni casella di controllo. C'è un modo come quello di metterlo in un ciclo e controllare tutte le caselle di controllo? –

-1

Per me questo ha funzionato.

String[] selecttype=request.getParameterValues("selectType"); 

//selectType is the name of checkbox in jsp page. 

Ciò restituirà i valori selezionati della casella di controllo.

+1

Quanto è diversa questa risposta da altre soluzioni? – Lucky

-1

creare campi nascosti come

Ora nel tuo servlet come: String [] nomi = request.getParameterValues ​​("casella di controllo");

PrintWriter pw = new PrintWriter(new File("/Desktop/sticker.txt")); 
for(int i=0; i < names.length; i++) { 
    if(i + 1 < names.length && names[i].equals(names[i+1])) { 
     pw.write(names[i] + ",true\n"); 
     ++i; 
    } else { 
     pw.write(names[i]+",false\n"); 
    } 

} 
pw.close(); 
Problemi correlati