2013-05-15 10 views
7

フォームに複数のチェックボックスがあります。チェックされているかどうかをチェックしたいだけです。サーブレット内でチェックボックスがチェックされているかどうかを調べる

これがチェックされていると、私はデータベースにIDを保存する必要があります。しかし、私の質問は、一度に各チェックボックスをオンにするのではなく、チェックされているかどうかを判断する方法です。 私はサーブレット内でチェックされているかどうかをチェックする必要があります。

は、これは私のコード

<!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> 

あるしかし、私のコードで私はいくつかのチェックボックスがあります。すべてのチェックボックスをハードコードする必要があります。私はそれをループに入れ、すべてのチェックボックスをチェックする方法はありますか?

+1

チェックボックスのグループを使用する必要がある場合、グループ化されたチェックボックスごとに 'name'属性が同じでなければなりません! – Xaltar

+0

うん、それはうまくいった。ありがとう。 –

答えて

10

簡単にするには、各チェックボックスに異なる名前を使用しているため、name属性を使用してデータを取得できます。サーブレットで

:あなたは、ユーザーに複数の値の間の選択肢を提供するために、チェックボックスのグループを使用したい場合は

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

、あなたはサーブレットでグループを反復処理する必要があります。サーブレットで(同じ名前=同じグループ)

<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> 

:HTMLで

:あなたはこれを使用することができ

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

サンプルコードを共有できますか? –

+0

はい、これは助けました。ありがとう。 –

4

あなたは

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

を使用して、確認することができますchecked

+0

しかし、私のコードでは、いくつかのチェックボックスがあります。すべてのチェックボックスにハードコードが必要です。私はそれをループに入れ、すべてのチェックボックスをチェックするような方法はありますか? –

-1

私のために、これは働いた。

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

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

これは、選択されたチェックボックスの値を返します。

+1

この回答は他のソリューションとどのように異なっていますか? – Lucky

-1

としてサーブレットに今

として隠しフィールドを作成します。名前= request.getParameterValues( "チェックボックス")[]文字列。

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(); 
関連する問題