点击当前行,显示相应复选框的选中状态。点击修改按钮,写出MySQL语句,修改复选框选中的值。数据库表里的name为"checkbox1,checkbox2,checkbox3”
从checkbox获取其value,按你db的格式进行拼接,然后update回去不就可以了么?
String[] powers=request.getParameterValues("power");
System.out.println(powers);
StringBuffer power=new StringBuffer();
for(int i=0;i<powers.length;i++){
power.append(powers[i]+",");
}
System.out.println(power);
我这样写的,那mysql的修改语句可以这么写吗?
sqlPower="update test_power_menu set name=? where userName=?";
if(DBUtils.update(sqlPower,power,id)>0){
out.print(1);
}else{
out.print(0);
}
@AnswerOne: 不知道你DBUtils中怎么实现的,但这里你的StringBuffer中最后多了个逗号,要remove掉。
@Daniel Cai: DBUtils中只是一个修改函数
public static int update(String sql, Object... objs) {
Connection conn = null;
PreparedStatement pst = null;
try {
conn = getConn();
pst = conn.prepareStatement(sql);
for (int i = 0; i <objs.length; i++) {
pst.setObject((i + 1), objs[i]);
}
return pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(null, pst, conn);
}
return -1;
}
后面不知道该怎么写了
@AnswerOne: 你这写完了啊,你是执行报错了还是什么?
@Daniel Cai:
String[] powers=request.getParameterValues("power");
System.out.println(powers);
这一步就没有获取到复选框的值,控制台输出的是 ,,,
弹出的是on,on,on,
@AnswerOne: 你页面上checkbox的input的value都是on?
@Daniel Cai: 不是,我想做的是一个权限
<div class="power">
<input type="checkbox" name="power" value="首页" disabled="disabled">首页
<input type="checkbox" name="power" value="分析" disabled="disabled">分析
<input type="checkbox" name="power" value="维护" disabled="disabled">维护
<input type="checkbox" name="power" value="训练" disabled="disabled">训练
<input type="checkbox" name="power" value="管理" disabled="disabled">管理
</div>
@AnswerOne: 你为什么都disabled的了?disabled了就没提交数据了。
@Daniel Cai: 并不是这个原因,我做的功能是点击新增按钮和修改按钮可用,点击保存按钮再提交到后台
@AnswerOne: 确认下你提交的时候响应的checkbox不为disabled并且为checked状态。
@Daniel Cai: 原来写的js把value值remove掉了
应该是根据checkbox的value值获取相应结果