日期:2014-05-20  浏览次数:20713 次

问个关于CHECKBOX的问题。。。
在第一个添加商品信息页面里有多个CHECKBOX 
  <td width="15%" class=yd_ltd>&nbsp;支付方式:</td>
  <td width="35%" class=yd_rtd>&nbsp;
  <html:checkbox name="type" property="现金"/>现金
<html:checkbox name="type" property="刷卡"/>刷卡
<html:checkbox name="type" property="转帐"/>转帐
  </td>

如选中支持的付款方式 “现金”“刷卡”; 

在第二个修改商品信息页面里,现金,刷卡 的CHECKBOX前面要打上钩,怎么实现 基础太差 帮帮忙


------解决方案--------------------
首先把你的第一个添加商品的页面中的checkbox放到一个form中:例如:
<form action="checkbox.jsp">
<td width="15%" class=yd_ltd >&nbsp;支付方式: </td > 
<td width="35%" class=yd_rtd >&nbsp; 
<input type=checkbox name="type" property="现金"/ >现金 
<input type=checkbox name="type" property="刷卡"/ >刷卡 
<input type=checkbox name="type" property="转帐"/ >转帐 
</td >
然后在第二页:(获取checkbox中的值)
String[] picked = request.getParameterValues("type");
String[] a=new String[20];
if (picked != null) {
for (int i = 0;i < picked.length; i++) {
out.println(" "+picked[i]);
} else {
out.println ("none");
}
就可以打印出所选择的了。
其实主要是用request.getParameterValues()或者request.getParameterValue()方法,得到的一个是数组,一个是字符变量,然后你再作其他处理。
------解决方案--------------------
应该用radiobutton吧?

最好是通过后台设置,request.setAttribute
------解决方案--------------------
<html:checkbox name="type" value="刷卡" property="check1"/ >刷卡
这样,如果form中check1的值为“刷卡”的话就会自动选中
------解决方案--------------------
在要自动打勾得页面中设置选中的CheckBox的状态
setState(true);就自动选中了。
------解决方案--------------------
方法不怎么好,但是可以实现
第一个页面提交后应该保存到数据库吧,假如保存格式为"现金,刷卡",即两个选项之间用逗号分隔.
在修改页面中可以这样处理

<%
String[] options={"现金","刷卡","转帐"};
String checkedvalue="现金,刷卡";//从数据库中获得
String[] checkedvalues=checkedvalue.split(",");
String arg="";

for(int i=0;i<options.length;i++)
{
for(int j=0;j<checkedvalues.length;j++)
{
if(options[i].equals(checkedvalues[j]))
{
arg="checked";
break;
}
}
out.println("<input type=checkbox name='type' property='"+options[i]+"' "+arg+"/ >"+options[i]+"<br>");
arg="";

}
 
%>