1. jsP列表中復選框批量選擇功能實現
1、 實現的方法往往就是在每條記錄前面加一個復選框,然後在列表下方放置一個「全選/
全不選」復選框。
2、 當選中「全選/全不選」復選框後,列表中的所有復選框都選中,當取消「全選/全不選」
復選框後,列表中的所有復選框都取消選中。
3、 當列表中的復選框都取消選中後,「全選/全不選」復選框也要取消選中。當列表中的復
選框都選中後,「全選/全不選」復選框也要選中。
4、 得到所有選中記錄的值。
這項功能其實也很簡單,但往往用的時候都要重新再寫一遍,於是把它總結為一個模塊,記錄下來,以便再用。
(1)首先是在每條記錄前加入復選框,該處復選框中的值為「id|username」(示例),即選中此復選框會同時傳兩個值(傳一個值的太簡單,就不舉例了),中間用|隔開,下面取值時會用到:
<input id="box" name="box" type="checkbox" value="id|username" onclick="checkonebox()"/>
(2)然後在下方加入「全選/全不選」復選框。
<input id="checkall" type="checkbox" value="" onclick="checkall()"/> 全選/全不選
(3)關鍵實現javascript
//點擊"全選/全不選"復選框,如果選中,則選中全部復選框,否則取消選中全部復選框 function checkall() {
var ischecked = document.getElementById("checkall").checked;
if(ischecked) {
checkallbox();
}else {
discheckallbox();
}
}
//選中全部復選框
function checkallbox() {
var boxarray = document.getElementsByName("box");
for(var i = 0; i < boxarray.length; i++) {
boxarray[i].checked = true;
}
}
//取消選中全部復選框
function discheckallbox() {
var boxarray = document.getElementsByName("box");
for(var i = 0; i < boxarray.length; i++) {
boxarray[i].checked = false;
}
//點擊某個復選框,如果所有復選框都選中,「全選/全不選」復選框也選中 //否則如果所有復選框都取消選中,「全選/全不選」復選框也取消選中 function checkonebox() {
if(isallchecked()) {
document.getElementById("checkall").checked = true;
}
if(isalldischecked()) {
document.getElementById("checkall").checked = false;
}
}
//是否全部選中
function isallchecked() {
var boxarray = document.getElementsByName("box");
for(var i = 0; i < boxarray.length; i++) {
if(!boxarray[i].checked) {
return false;
}
}
return true;
}
//是否全部沒有選中
function isalldischecked() {
var boxarray = document.getElementsByName("box");
for(var i = 0; i < boxarray.length; i++) {
if(boxarray[i].checked) {
return false;
}
}
return true;
}
//得到選中項的值的集合,結果為「1|小明,2|小王,3|小李」的形式
function getallcheckedvalue() {
var boxvalues = "";
var boxarray = document.getElementsByName("box");
for(var i = 0; i < boxarray.length; i++) {
if(boxarray[i].checked) {
var boxvalue = boxarray[i].value;
if(boxvalues == "") {
boxvalues = boxvalue;
}else {
boxvalues = boxvalues + "," + boxvalue;
} } } return boxvalues;
//如果只需要得到其中選中項的id值的集合,方法如下,得到的值為(1,2,3,…) function getIds() {
var boxvalues = getallcheckedvalue();
var boxvaluesArray = boxvalues.split(",");
var ids = "";
for(var i = 0; i < boxvaluesArray.length; i++) {
var boxvalue = boxvaluesArray[i];
var boxvalueArray = boxvalue.split("|");
var id = boxvalueArray[0];
var username = boxvalueArray[1];
if(ids == "") {
ids = id;
}else {
ids = ids + "," + id;
}
}
return ids;
}
最後,總結步驟:每條記錄前加復選框,加「全選/全不選」復選框,調用javascript
2. java中保存復選框的值,插入到資料庫中用哪種方法詳細點給分!!!
JSP頁面例子:
<%@ page language="java" pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>無標題文檔</title>
<script>
var check=true;
function check_all(){
if(check==false){
arr = document.getElementsByName("checkbox");
for(i=0;i<arr.length;i++){
arr[i].checked = false
}
check=true;
}
else{
arr = document.getElementsByName("checkbox");
for(i=0;i<arr.length;i++){
arr[i].checked = true
}
check=false;
}
}
</script>
</head>
<body>
<form action="" method=""post >
<input type="checkbox" name="checkbox" value="0" onclick='check_all();'/>
全選 <a href="../xtyhgl/delAllyg.do">刪除</a>
<table width="200" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><input type="checkbox" name="checkbox" value="100001"/></td>
<td>100001</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox" value="100003"/></td>
<td>100003</td>
</tr>
</table>
</form>
</body>
</html>
Action中代碼:
如果是struts1.2在form類中定義屬性 private String[] checkbox;
並為屬性checkbox提供set和get方法。
如果是struts2 定義屬性 private String[] checkbox;
並為屬性checkbox提供set和get方法。
strust1:在action中獲取form類中的值:String[] checkbox=request.getParameterValues("checkbox");這樣在struts action中就獲取了jsp中checkbox的值,循環取出。
strust2:在action中直接拿String[] checkbox的值,循環取出。
3. jsp 批量修改選中的數據,如圖所示,復選框選中幾條數據後,將文本框的值保存到資料庫中去
這些表單項的name屬性按照一定的規律來,
邏輯非常復雜,
但是絕對能實現。
主要的地方在於各個表單項的命名,
給你推薦一個,
比如:第一個行id是1,那麼文本框就叫txt1,復選框叫check1
第二個行id是2,那麼文本框就叫txt2,復選框叫check2
自己做吧,
4. jsp中的checkbox怎麼將選中的值傳到後台
1.給復選框命名:<input type='checkbox' name='checkTheme' value='">。
2.在提交的時候onclick="aa();"。
4.action裡面:
private String tempString;//get、set方法,String temp1[] = tempString.split(",");// 截取字元串,獲得各個checkBox的值。
5.這個數組temp1[]裡面的值就是要獲取的各個復選框里取到的值。
5. jsp中request.getParameterValues()獲取復選框的值怎麼得到的值是on,而不是具體的某個值
你的bnums是ID,你在bnums這個input上加一個name="bnums"就行了,因為request.getParameterValues()取的是name的值。個人建議用request.getParameter(「bnums」); request.getParameterValues()這個返回的是一個數組哈