<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="s"  uri="/struts-tags"%><%@ page isELIgnored="false" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="true">
<head>

<title>患者信息重复记录</title>
<style>
/* 给链接加入鼠标移过变色和去除下划线功能 */
a:hover {color:red;text-decoration:none}
</style>
<script type="text/javascript" src="checkbox.js" />

</script>
<script type="text/javascript">
</script><%
  String[] list =(String[])session.getAttribute("baoliu2");
  String[] cmap = (String[])session.getAttribute("baoliu");
 
  boolean xb =false;
  boolean xm =false;
  boolean csrq =false;
  boolean zjhm =false;
  boolean jzdz =false;
  if(cmap!=null){
  
   for (int j = 0; j < cmap.length; j++) {
if (cmap[j].equals("xm")) {
xm = true;
} else if (cmap[j].equals("xb")) {
xb = true;
} else if (cmap[j].equals("csrq")) {
csrq = true;
} else if (cmap[j].equals("zjhm")) {
zjhm = true;
} else if (cmap[j].equals("jzdz")) {
jzdz = true;
}
}
}

 
  %>
  </head> <body>

<form action="cxcfAction" method="post" id="all" name="myform">
<table>
<c:if test=""></c:if>
<tr>
<td><br>&nbsp; 
&quot;查重复条件 
</td>
</tr>
<tr>  

<td>
<input type="checkbox" name="xcheck" <%if(xm)%>checked<%; %> id="xm" value="xm" />

姓名
</td>

<td>
<input type="checkbox" name="xcheck" <%if(xb)%>checked<%; %> id="xb"  value="xb"  />
性别
</td>
<td>
<input type="checkbox" name="xcheck" <%if(csrq)%>checked<%; %> id="csrq"  value="csrq" />
出生日期
</td>
<td>
<input type="checkbox" name="xcheck" <%if(zjhm)%>checked<%; %> id="zjhm"  value="zjhm" />
身份证号
</td>
<td>
<input type="checkbox" name="xcheck" <%if(jzdz)%>checked<%; %> id="jzdz" value="jzdz"  />
地址
</td>



</tr>

</table> <input type="button" value="查询" onclick="return check_box();" /> </form> <table>
<tr>
<td>
重复对象列表
</td>
</tr>
</table>


<table>
<tr>

<td>
<input type="button" onclick="hebing()" value="合并" />
</td>

<td>
<input type="button" onclick="excel()" value="EXCEL" />
</td>
</tr>
</table>
        <form name="myform2" action="xgcfAction" method="post" id="hbformid"  >
<input type="hidden" id="csdah"/>
<table>
<tr>
   <td>&nbsp;&nbsp;
   </td>
<td>
姓名
</td>
<td>
性别
</td>
<td>
出生日期
</td>
<td>
身份证号
</td>
<td>
地址
</td>
<td>
建卡时间
</td>
</tr>
<c:forEach items="${cflist}" var="u" varStatus="ul">
<tr>
    <td>
    <input type="checkbox" id="${u.csdah}" name="hbcfyh"              value="${u.csdah}"/>
                         </td>
<td>
${u.xm }
</td>
<td>
${u.xb }
</td>
<td>
${u.csrq }
</td>
<td>
${u.zjhm }
</td>
<td>
${u.jzdz }
</td>
<td>
${u.zjexsj}
</td>

<td ></td>
    
</tr>
</c:forEach>
</table>
    </form>
    <form action="ExcelAction" name="myform3" method="post">
    <input type="hidden" id="csdah"/>
    <input type="hidden" name="exname" id="exid"/>
    </form>
    <table></table>
  共${totalCount}个用户 
   
  第${currentPage}页/共${totalPage}页 
    <%-- 输出页面跳转代码, 分链接和静态文字两种 --%>
    <c:if test="${currentPage > 1}">
       [ <a href="${pageContext.request.contextPath}/cxcfAction?page=${currentPage-1}">上一页</a> ] 
    </c:if>
    <c:if test="${currentPage <= 1}">
       [ 上一页 ] 
    </c:if>
    <c:if test="${currentPage < totalPage}">
       [ <a href="${pageContext.request.contextPath}/cxcfAction?page=${currentPage+1}">下一页</a> ]
     </c:if>
    <c:if test="${currentPage >= totalPage}">
       [ 下一页 ] 
    </c:if>
    <%-- 输出 JavaScript 跳转代码 --%>
    <script>
    // 页面跳转函数
    // 参数: 包含页码的表单元素,例如输入框,下拉框等
    function jumpPage(input) {
     // 页码相同就不做跳转
     if(input.value == ${currentPage}) {
     return;
     }
     var newUrl = "${pageContext.request.contextPath}/cxcfAction?page=" + input.value;
     document.location = newUrl;
    }
    </script>
转到
  <!-- 输出 HTML SELECT 元素, 并选中当前页面编码 -->
      <select onchange='jumpPage(this);'>
      
      <c:forEach var="i" begin="1" end="${totalPage}">
        <option value="${i}"

<c:if test="${currentPage == i}">
selected
</c:if> >第${i}页</option>
  </c:forEach>
  
      </select>
      输入页码:<input type="text" value="${currentPage}" id="jumpPageBox" size="3"> 
      <input type="button" value="跳转" onclick="jumpPage(document.getElementById('jumpPageBox'))"> </body>
</html>我的checkbox是迭代出来的  怎么用session获得的数组list获得点击的值啊  分页保留checkbox的选中值
那个string[] cmap是静态的checkbox提交之后能保留checkbox的选中值  
但是那个用c标签迭代出来的就不会了 请教高搜帮忙

解决方案 »

  1.   

    把checkbox选中的值也带过去,边迭代边判断,如果有这个值,就把它标为选中状态;Ajax
      

  2.   

    弄一个  标识 数组啊,放到session中 ,然后点击  通过 ajax,到后面修改 该数组对应的值 !!!
      

  3.   

    能详细给写出来么
    小弟不懂ajax啊
    还还是初学者
      

  4.   

    cmap既然能保留checkbox选中的值,那你在迭代的时候判断cmap里面有没有对应的值,就像这样:<c:forEach items="${cflist}" var="u" varStatus="ul">
        <input type="checkbox" id="${u.csdah}" name="hbcfyh" value="${u.csdah}" ${cmap[ul.index]==u.csdah?'checked':''}/>
    </c:forEach>
    记得EL表达式好像能支持这种简单的运算,你看看,可能有什么问题,大致应该是这样
      

  5.   

    最近刚写过,你可以参考下。
    <script type="text/javascript">
    checkedIds="";//翻页保存选中的id
         
           function changeIds(){
                var oneches=document.getElementsByName("checkbox");
         for(var i=0;i<oneches.length;i++){
      if(oneches[i].checked==true){
      //避免重复累计id (不含该id时进行累加)
      if(checkedIds.indexOf(oneches[i].value)==-1){
      checkedIds=checkedIds+oneches[i].value+",";
      }
      }
      if(oneches[i].checked==false){
      //取消复选框时 含有该id时将id从全局变量中去除
      if(checkedIds.indexOf(oneches[i].value)!=-1){
      checkedIds=checkedIds.replace((oneches[i].value+","),"");
      }
      }
     }
           }

    function getChecked(){
              var oneches=document.getElementsByName("checkbox");
         for(var i=0;i<oneches.length;i++){
          //全局变量中含有id,则该复选框选中
      if(checkedIds.indexOf(oneches[i].value)!=-1){
      oneches[i].checked=true;
      }
      }
           }</script>
      

  6.   


    getChecked() 这个什么时候调用啊哥们
      

  7.   


    那个id是放在session里的那个吗
     String[] list =(String[])session.getAttribute("baoliu2");
    是这个吗哥们儿
      

  8.   

    getChecked()你可以放到翻页时执行。
    checkedIds是在js里面定义的公共变量。
      

  9.   


    那个checkid  的公共变量怎么获取啊
    我方到session里了
    用的是struts2
      

  10.   

    那个就是个公共变量,初始是个空字符串。你是需要把你的复选框的value存到里面。
      

  11.   


     String[] list =(String[])session.getAttribute("baoliu2");是这个么?哥们儿
      

  12.   


    String[] cmap = (String[])session.getAttribute("baoliu");
    这个session里的我是固定的多选框也是提交完action后保留选择做出来了
    但是那个分页保留的那个的多选框是用c标签迭代出来的,这个就好赖做不出来了
      

  13.   

    <script type="text/javascript">
       //得到选中复选框值
        function theSubmit(){
         var checkIds = GetCookie("ArticleId");
         alert(checkIds);
        }
        
        function SetArticleId(o, i) { 
           if (o.checked) {
            AddCookie(i)
          }
          else {
            RemoveCookie(i)
          } 
        }
        
        function SetCookie(name, value) {
          document.cookie = name + "=" + escape(value); 
        }
        function GetCookie(name) {
          if (document.cookie.length > 0) {
            c_start = document.cookie.indexOf(name + "=");
            if (c_start != -1) {
              c_start = c_start + name.length + 1;
              c_end = document.cookie.indexOf(";", c_start);
              if (c_end == -1) c_end = document.cookie.length;
              return unescape(document.cookie.substring(c_start, c_end));
            }
          }
          return "";
        }
        function AddCookie(i) {
          d = GetCookie("ArticleId");
          if (d == "") d = "|";
          if (d.indexOf("|" + i + "|") == -1) {
            d += i + "|";
            SetCookie("ArticleId", d);
          } 
        }
     
        function RemoveCookie(i) {
          d = GetCookie("ArticleId");
          var reg = new RegExp("\\|" + i + "\\|");
          if (reg.test(d)) {
            d = d.replace(reg, "|");  
            SetCookie("ArticleId", d);
          }     
        }    
      </script>  <div align = "center">
          <form name="wzForm" id="wzForm" action="" method="post" style="margin:0 auto ;">
           <table width="400px" cellpadding="0" cellspacing="0" border = "1" style=" font-size:12px; float:center;">
            <tbody id="productTable">
         <tr align = "center"> 
             <th height = "10" >产地</th>
         <th >品种</th>
         <th >材质</th>
         <th >规格</th>
         <th >选择</th>
         </tr>
         <c:forEach items="${page.data}" var="wz" varStatus="index">
       <tr align = "center" onmouseover="this.className='nle_link_hover'" onmouseout="this.className='nle_link'"  <c:if test="${index.index%2 eq 0 }">style="background: #F3F3F3"</c:if>> 
           <input type = "hidden" id = "dm"  name = "dm" value = "${wz.dm}" />
           <td>${wz.cd}</td>
       <td>${wz.pm}</td> 
       <td>${wz.cz}</td>
       <td>${wz.gg}</td>
       <td>
    //当复选框选中时 把 id 存进去 onclick="SetArticleId(this,${wz.dm});" 
    <input name="checkedGoodsCheckbox" id="checkedGoodsCheckbox${wz.dm}" type="checkbox"   onclick="SetArticleId(this,${wz.dm});" /> </td>
       </tr>    
         </c:forEach>
        
    <div  align = "right">  
    //得到所有选中值
     <input type = "button" value = "确定" onclick = "theSubmit();"/>  
     </div>
         <c:if test="${page.data == null || page.data == ''}">
    <tr style="color:red;font-size: 14px;text-align: center;margin-left: 30px;"><th colspan="11" style="text-align: center;margin-left: 30px;">Sorry! 没有查到您想要的产品</th></tr>
    </c:if>
           </tbody>
       </table>
        </form>

        </div>