2013-05-15 20 views
7

Tôi có một vài hộp kiểm trong một biểu mẫu Tôi chỉ muốn kiểm tra xem chúng có được kiểm tra hay không.Tìm xem các hộp kiểm được kiểm tra bên trong một servlet

Nếu được chọn, tôi cần lưu trữ id của chúng trong cơ sở dữ liệu (tôi có thể thực hiện). Nhưng câu hỏi của tôi là làm thế nào để xác định xem được kiểm tra hay không thay vì kiểm tra cho mỗi hộp kiểm tra tại một thời điểm. Tôi cần kiểm tra xem nó đã được kiểm tra hay không trong một servlet.

Đây là mã của tôi

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

Nhưng trong mã của tôi, tôi có một vài hộp kiểm. Tôi cần phải hardcode cho mỗi hộp kiểm. Có cách nào để tôi đặt nó trong một vòng lặp và kiểm tra tất cả các hộp kiểm tra?

+1

Nếu bạn cần sử dụng hộp kiểm tra, thuộc tính 'name' phải giống nhau cho mỗi hộp kiểm được nhóm! – Xaltar

+0

Đúng vậy. Cảm ơn . –

Trả lời

10

Để đơn giản, bạn có thể sử dụng thuộc tính name để lấy dữ liệu vì bạn đang sử dụng tên khác nhau cho mỗi hộp kiểm.

Trong Servlet:

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

Nếu bạn muốn sử dụng nhóm các hộp kiểm để cung cấp cho người dùng một sự lựa chọn giữa nhiều giá trị, bạn sẽ cần phải lặp qua các nhóm trong servlet. Bạn có thể sử dụng này:

Trong HTML: (giống name = cùng một nhóm)

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

Trong Servlet:

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

Bạn có thể chia sẻ mã mẫu không? –

+0

Có điều này đã giúp. Cảm ơn . –

4

Bạn có thể sử dụng

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

và sau đó kiểm tra checked giá trị

+0

Nhưng trong mã của tôi tôi có một vài hộp kiểm tra. Tôi cần hardcode cho mỗi hộp kiểm. Có cách nào như vậy mà tôi đặt nó trong một vòng lặp và kiểm tra cho tất cả các hộp kiểm tra? –

-1

Đối với tôi điều này đã làm việc.

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

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

Điều này sẽ trả lại giá trị hộp kiểm đã chọn.

+1

Câu trả lời này khác với các giải pháp khác như thế nào? – Lucky

-1

Tạo các trường ẩn như

Bây giờ trong servlet của bạn như: String [] names = request.getParameterValues ​​("hộp kiểm");

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(); 
Các vấn đề liên quan