查詢後以分頁顯示結果問題
輸入日期作查詢,出到資料.這個沒問題
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") --------------------编程问答--------------------
我看完,更不明白
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为空 --------------------编程问答--------------------
表单就是request.getParameter("cp")这样取 的 ,关键是他的cp的value没直
补充:Java , Web 开发