8

フォームにいくつかのチェックボックスがあり、それらがチェックされているかどうかを確認したいだけです。

チェックされている場合、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>

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

4

4 に答える 4

11

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

サーブレットで:

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

チェックボックスのグループを使用してユーザーに複数の値から選択できるようにする場合は、サーブレットでグループを反復処理する必要があります。これを使用できます:

HTML の場合: (同じ名前 = 同じグループ)

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

サーブレットで:

String[] results = request.getParameterValues("s1_t1");
for (int i = 0; i < results.length; i++) {
    System.out.println(results[i]); 
}
于 2013-05-15T09:08:14.730 に答える
4

使用できます

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

checked次に、値を確認します

于 2013-05-15T09:13:10.300 に答える