当前位置:编程学习 > JAVA >>

查詢後以分頁顯示結果問題


輸入日期作查詢,出到資料.這個沒問題

link: viewBooking.jsp?item_name=2012-02-16&submit=Search
但不輸入日期,則出所有資料
link: viewBooking.jsp?item_name=&submit=Search
但當按下一頁就找不到資料,拿不到個值
link:viewBooking.jsp?cp=2  (cp=現時第幾頁)


 <script type="text/javascript">
            function openPage(currentpage) {
                document.getElementById("cp").value = currentpage;
                document.getElementById("frm").submit();

            }
            function changePage() {
            document.getElementById("cp").value = document.getElementById("selNumber").value ;
            document.getElementById("frm").submit();
            }
    </script>
</head>
  <body background="../bg.jpg">
        <center>
          <table width="1200" border="1">
              <% db d = new db(); %>       
              <form name="fm" action="viewBooking.jsp" method="get">
                    <table>
                        <tr><td>Search Date</td></tr>
                        <tr><td><input type="text"name="item_name" size="10" maxlength="10" /><br/> <input type="submit" name="submit" value="Search" /><br/></td></tr>
                    </table>

                </form>
                    <td valign="top"><h2>Booking database</h2>
      <%
        int pageSize = 10 ;
        int currentPage = 1 ;

        int allRecorder = 0 ;
        int pageNumber  ;

        try {
            currentPage = Integer.parseInt(request.getParameter("cp"))  ;
        } catch(Exception ex ) {

        }
        //关于数据库连接部分的处理根据自己的数据库来指定
       
 
  try { String sql="";
            String result=request.getParameter("item_name");
            //out.print(result);
            if(result.equals("")){
            sql = "select count(booking_id) from booking where status='N' and doctor_id='" + session.getAttribute("Username") + "'";
            }else
                sql = "select count(booking_id) from booking where status='N' and doctor_id='" + session.getAttribute("Username") + "' and to_char(booking.booking_date,'yyyy-MM-dd') LIKE '%"+result+"%'";
            PreparedStatement pst = conn.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();
            if(rs.next()) {
                  allRecorder = rs.getInt(1);
            }
            pageNumber = (allRecorder+pageSize-1)/pageSize ; //得到尾页数
            rs.close();
            pst.close();
             if(result.equals("")){
                sql = "SELECT booking_id,client.name,doctor.name,doctor.category,to_char(booking.booking_date,'yyyy-MM-dd'),to_char(booking.booking_time,'HH24:mi'),doctor.location,booking.status from booking,client,doctor "
                                                + "where booking.doctor_id=doctor.doctor_id and booking.client_id=client.client_id and booking.doctor_id='" + session.getAttribute("Username") + "' and booking.status='N' order by booking.booking_id asc";
                }else
            sql = "SELECT booking_id,client.name,doctor.name,doctor.category,to_char(booking.booking_date,'yyyy-MM-dd'),to_char(booking.booking_time,'HH24:mi'),doctor.location,booking.status from booking,client,doctor "
                                                + "where booking.doctor_id=doctor.doctor_id and booking.client_id=client.client_id and booking.doctor_id='" + session.getAttribute("Username") + "' and booking.status='N' and to_char(booking.booking_date,'yyyy-MM-dd') LIKE '%"+result+"%'  order by booking.booking_id asc";          
            pst = conn.prepareStatement(sql);
            rs = pst.executeQuery();
      %>
      <form action="viewBooking.jsp" method="get" id="frm">
           
          <input type="button" value="First"   onclick="openPage(1);" <%=currentPage==1?"disabled":""%> />
          <input type="button" value="Previous"   onclick="openPage(<%=currentPage-1%>);" <%=currentPage==1?"disabled":""%>/>
          <input type="button" value="Next"   onclick="openPage(<%=currentPage+1%>);" <%=currentPage==pageNumber?"disabled":""%>/>
          <input type="button" value="Last"   onclick="openPage(<%=pageNumber%>);" <%=currentPage==pageNumber?"disabled":""%>/>
          <font color="red"><%=currentPage%>/<%=pageNumber%></font>
          <input type="hidden" value="" name="cp" id="cp">
          <select id="selNumber" onchange="changePage();">
              <%
                  for(int temp=1;temp<=pageNumber;temp++) {
              %>
                        <option value="<%=temp%>" <%=currentPage==temp?"selected":""%> ><%=temp%></option>
              <%
                  }
              %>
          </select>
      </form>
      <table cellpadding="10" border=1 width=80%>
  <tr>
   <td>Booking id</td>
   <td>Client Name</td>
   <td>Doctor Name</td>
   <td>Subject</td>
   <td>Booking Date</td>
   <td>Booking Time</td>
   <td>Location</td>
   <td>Status</td>
   <td>Operate</td>

  </tr>
  <%
        for(int temp = 0;temp<pageSize*(currentPage-1);temp++) {
            rs.next();   //需要空出去部分代码不显示
        }

        boolean hasData = false;
        for(int temp=0 ;temp<pageSize;temp++) {
            if(rs.next()) {
                hasData = true ;
        %>
                <tr>
                <td><%=rs.getString(1)%></td>
                <td><%=rs.getString(2)%></td>
                <td><%=rs.getString(3)%></td>
                <td><%=rs.getString(4)%></td>
              <td><%=rs.getString(5)%></td>
              <td><%=rs.getString(6)%></td>
               <td><%=rs.getString(7)%></td>
               <td><%=rs.getString(8)%></td>
                <td ><a href="addConsultation.jsp?id=<%=rs.getString(1)%>">update</a></td>
                </tr>
  <%
      }
        }
            if(!hasData) {%>
      <tr><td colspan=6>Data is no longer</td></tr>
  <%
  }
  %>
      </table>
      <%
            rs.close();
         pst.close();
      conn.close();
     }catch(Exception ex) {
    //out.print("connect error");
   }
      %>
--------------------编程问答-------------------- 为什么不是

link:viewBooking.jsp?item_name=&submit=Search&cp=2 --------------------编程问答-------------------- 正常應該是這樣,但是我試過用一個form,出到viewBooking.jsp?item_name=&submit=Search&cp= 
cp沒數字..超奇怪 --------------------编程问答-------------------- 你的cp是放在form里面的hidden里面的,不能request.getParameter("cp")这样取,要这样取:request.getAttribute("cp") --------------------编程问答--------------------
引用 3 楼 dryzeng 的回复:
你的cp是放在form里面的hidden里面的,不能request.getParameter("cp")这样取,要这样取:request.getAttribute("cp")

我看完,更不明白
 request和form method="get"都是差不多...
還有,剛才一進入時,直接submit, link: viewBooking.jsp?item_name=&submit=Search
但是再submit多次,link: viewBooking.jsp?item_name=&submit=Search&cp= --------------------编程问答-------------------- 你的cp是放在form里面的hidden里面的,不能request.getParameter("cp")这样取,要这样取:request.getAttribute("cp") 
--------------------编程问答-------------------- 我上次做了一个功能 正常查询能够显示,但是当我输入日期段或是名字 进行模糊查询的时候 分页就不好用了,楼主应该跟我差不多吧 继续观望 学习o(∩_∩)o... --------------------编程问答-------------------- <input type="hidden" value="" name="cp" id="cp">

value为空 --------------------编程问答--------------------
引用 3 楼 dryzeng 的回复:
你的cp是放在form里面的hidden里面的,不能request.getParameter("cp")这样取,要这样取:request.getAttribute("cp")


表单就是request.getParameter("cp")这样取 的  ,关键是他的cp的value没直
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,