Mon 18 Sep 2006 14:52:30
พี่ครับขอรบกวนอีกครั้งนะครับ...พี่ลองช่วยไล่ดูโค้ดที่ผมทำไว้ให้หน่อยครับ.มีปัญหาตรงที่ ตอนแรกผมได้ทำการ search โดย Request.form ไป ตัวนี้ค้นหาได้แล้วแต่พอเลือกหน้าอีกหน้าหนึ่งข้อมูลทั้งหมดในฐานข้อมูลได้ขึ้นหาครับทั้งๆ ที่ค้นหาไปแล้ว ซึ่งผมคิดว่าคงเกี่ยวกับการแบ่งหน้าซึ่งเวลาผมเรียกอีกหน้าหนึ่งผมได้ Request.Querysting ไว้ครับ..อยากให้พี่ลองช่วยดูหน่อยนะครับ
****************************************************************
<!--#include file="header.asp" -->
<!--#include file="Database/connectDB.asp" -->
<!--#include file="Database/connectDB1.asp" -->
<script language="JavaScript" type="text/JavaScript">
<!--
function Confout(object) {
if (confirm(" คุณแน่ใจ หรือไม่ ? ที่จะลบรายการนี้ ") == true) {
return true;
}
return false;
}
//-->
</script>
<%
strAction=Request.Form("action")
If strAction="" Then strAction=Request.QueryString("action")
Select Case strAction
Case "delete" '------- Block Delete ลบข้อมูล
strAsDetailID=Request.QueryString("id") ' รับค่าจาก link Delete
' ตรวจเช็คข้อมูลในตาราง Tblcircletype_ID ก่อน
SQL="SELECT * FROM TblScholarship_Detail WHERE AsDetailID='"&strAsDetailID&"'"
Set RSchkDel=Conndel.Execute(SQL)
If RSchkDel.EOF Then
SQL="DELETE FROM TblScholarship WHERE AsDetailID='"&strAsDetailID&"'"
Set RS1=Conndel.Execute(SQL)
Set RS1=Nothing
Else ' มีค่าที่ตาราง tblCircleType_ID เชื่อมโยงมา%>
<SCRIPT language=JavaScript>
<!--
var answer = confirm ("การดำเนินการลบมีผลกระทบกับรายการผู้ได้รับทุน !! คุณต้องการดำเนินการกับรายการผู้ได้รับทุนหรือไม่ ?? ")
if (answer)
window.location='Del_Scholarship.asp?id=<%=strAsDetailID%>'
// -->
</SCRIPT>
<%
End If
Set RSchkDel=Nothing
Conndel.Close
Set Conndel=Nothing
Case Else '---- เขียน เหตุการณ์นอกเหนือ ที่เราควบคุม
End Select
'-------End Block Operation
%>
<%
select_manu=Request.form("select")
keyword=Request.form("txt_Search")
select_year=Request.form("YearSch")
if keyword = "" then
keyword=Request.QueryString("keyword")
end if
if select_manu="" then
'select_manu=Request.QueryString("select_manu")
select_manu="ประเภททุน"
end if
if keyword = "" And select_manu = "ทั้งหมด" And select_year<> "--[เลือกปีการศึกษา]--" then
sql ="Select * From QrScholarship WHERE YearsSch Like '%"&select_year&"%' ORDER BY AsLakhID"
elseif select_manu = "" And select_year<> "--[เลือกปีการศึกษา]--" then
sql ="Select * From QrScholarship WHERE YearsSch Like '%"&select_year&"%' ORDER BY AsLakhID"
' elseif keyword = "" And select_manu = "ทั้งหมด" then
' sql ="Select * From QrScholarship WhereYearsSch '"&select_year&"' "
else
select case select_manu
case "ประเภททุน" sql ="Select * From QrScholarship WHERE Als_Name Like '%" & keyword & "%' And YearsSch Like '%"&select_year&"%' ORDER BY AsLakhID"
case "ชื่อทุน" sql ="Select * From QrScholarship WHERE Asd_name Like '%" & keyword & "%' And YearsSch Like '%"&select_year&"%' ORDER BY AsLakhID"
case "ทั้งหมด" sql ="Select * From QrScholarship ORDER BY AsLakhID"
end select
end if
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open Sql, conn, 1, 3
rs.PageSize=10 ' default=10
If Request.QueryString("Page")="" Then
CurrentPage=1
Else
CurrentPage=CInt(Request.QueryString("Page")) ' ไม่แปลงจะเปรียบเทียบค่าไม่ได้
End If
with response
.Write "<script language='JavaScript'>"
.Write "function newtopic() { window.open('searchScholarship.asp','','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=400,height=300'); }"
.Write "function toPage(select) {"
.Write "parent.location='searchScholarship.asp?select="& select_manu & "&txt_Search="&keyword&"&YearSch="&select_year&"&Page=' + select.options[select.selectedIndex].value }"
.Write "</script>"
end with
%>
<form name="form1" method="post" action="searchScholarship.asp">
<table width="612" height="191" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="1" height="20"> </td>
<td colspan="3"><table width="367" border="0" cellspacing="0" cellpadding="1">
<tr>
<td width="5"> </td>
<td width="81"><font color="#CC3300">ค้นหาจาก</font></td>
<td width="172"> </td>
<td width="101"><font color="#CC3300">ปีการศึกษา</font></td>
</tr>
</table></td>
<td width="2"> </td>
</tr>
<tr>
<td height="24"> </td>
<td width="7" valign="top"><font color="#CC0000"> </font></td>
<td width="452" valign="top"><font color="#CC0000">
<select name="select" class="listbox">
<option selected><%=select_manu %></option>
<option >ประเภททุน</option>
<option >ชื่อทุน</option>
<option >ทั้งหมด</option>
</select>
<font size="2" face="MS Sans Serif, Tahoma, sans-serif">
<input name="txt_Search" value="<%= keyword%>" type="text" id="txt_Search3" size="30" class="TextBoxP">
<%
set rsyear=conn.execute("SELECT YearsSch FROM TblScholarship GROUP BY YearsSch ")
%>
<select name="yearsch" class="listbox" id="yearsch">
<option selected>--[เลือกปีการศึกษา]--</option>
<%
while not rsyear.eof
%>
<option value="<%=rsyear("YearsSch")%>"><%=rsyear("YearsSch")%></option>
<%
rsyear.movenext
wend
rsyear.Close
%>
</select>
<input name="cmdSearch" type="submit" id="cmdSearch2" value="ค้นหา" class="button" style="cursor:pointer">
</font></font></td>
<td width="150" valign="top"><font color="#CC0000">หน้า
<%
with Response
.Write "<select size=1 onChange=""toPage(this,'" & keyword & "')"">"
For i=1 To rs.PageCount
.Write "<option value=" & i
If i=CurrentPage Then .Write " selected" End If
.Write ">" & i
Next
%>
</select>
จากทั้งหมด
<% =rs.PageCount %>
หน้า
<%
End With
Color=0
i=1
If Not rs.Eof Then
' rs.AbsolutePage=CurrentPage
rs.Move rs.PageSize*(CurrentPage-1)
%>
</font></td>
<td> </td>
</tr>
<tr>
<td height="88"> </td>
<td colspan="3" valign="top"><TABLE width="604" border=0 align="center" cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD width=12><IMG height=12
src="images/main_out_top_left.jpg"
width=12></TD>
<TD width=781
background="images/main_out_top_mid.jpg"></TD>
<TD width=12><IMG height=12
src="images/main_out_top_right.jpg"
width=12></TD>
</TR>
<TR>
<TD height="64"
background="images/main_out_mid_left.jpg"></TD>
<TD align="left" valign="top" bgcolor="#FFFFFF"
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px">
<div align="center">
<%
with Response
.Write "<table border=0 cellpadding=0cellspacing=0 align=right width='99%'>"
.Write "<tr>"
.Write "<td colspan='6'><font color=#CC0000 class='detail'>จำนวนรายการที่ค้นพบทั้งหมด " & rs.RecordCount & " รายการ</font></td>"
.Write "</tr>"
.Write "<tr bgcolor=#d5e6ff>"
.Write "<td width='8%'><div align=center><font color=#000000 >รหัส</font></div>"
.Write "<td width='15%'><div align=center><font color=#000000 >ประเภททุน</font></div>"
.Write "<td width='35%'><div align=center><font color=#000000 >ชื่อทุน</font></div>"
.Write "<td width='9%'><div align=center><font color=#000000 >ปีการศึกษา</font></div>"
.Write "<td width='9%'><div align=center><font color=#000000 >รายละเอียด</font></div>"
.Write "</tr>"
end with
Else
%>
<script language=javascript>
alert("ไม่พบข้อมูลที่ได้ทำการค้นหา..กรุณาทำการค้นหาใหม่..");
window.location="searchScholarship.asp";
</script>
<%
End If
Do While Not rs.Eof and i<= rs.PageSize
With Response
If Color=0 Then
.Write "<tr bgcolor=#E9F2F3>"
Color=1
Else
.Write "<tr bgcolor=#FFFFFF>"
Color=0
End If
.Write "<td><div align=center><font color=#000000 class='detail'>"& rs("AsDetailID")&"</font></div>"
.Write "<td><div align=left><font color=#000000 class='detail'>"& rs("Als_Name") &"</font></div>"
.Write "<td><div align=left><font color=#000000 class='detail'>"& rs("Asd_name") &"</font></div>"
.Write "<td><div align=center><font color=#000000 class='detail'>"& rs("YearsSch") &"</font></div>"
.Write "<td><div align=center><font color=#000000 class='detail'><a href='ShowScholarship.asp?id="& rs("AsDetailID")&"'><img src='images/xp034.gif' border='0' alt='รายละเอียด'></a></font></div>"
.Write "</tr>"
End With
rs.MoveNext
i=i+1
loop
With Response
.Write "</table>"
End With
%>
</div></TD>
<TD
background="images/main_out_mid_right.jpg"></TD>
</TR>
<TR>
<TD><IMG height=12
src="images/main_out_btm_left.jpg"
width=12></TD>
<TD
background="images/main_out_btm_mid.jpg"></TD>
<TD><IMG height=12
src="images/main_out_btm_right.jpg"
width=12></TD>
</TR>
</TBODY>
</TABLE></td>
<td> </td>
</tr>
<tr>
<td height="20"> </td>
<td valign="top"> </td>
<td valign="top"> </td>
<td valign="top"> </td>
<td> </td>
</tr>
<tr>
<td height="39"> </td>
<td colspan="3" valign="top"> </td>
<td> </td>
</tr>
</table>
</form>
<%
rs.Close
Set rs=Nothing
%>
<!--#include file="footer.asp" -->
ผมไม่ค่อยเข้าใจคำถามแต่เท่าที่ดูโค๊ดแล้วปัญหาน่าจะหมายถึงว่า เลือกเปลี่ยนหน้าแล้วข้อมูลยังเป็นข้อมูลเดิมใช่ไหมครับ
การแบ่งหน้าใน MSSQL หรือว่า Access นั้นจะต้องใช้ sub query ช่วยครับเนื่องจาก ไม่มีคำสั่ง limit ให้ใช้ครับ เช่น
SELECT TOP(10) * FROM table_name WHERE column NOT IN (SELECT TOP(10) * column FROM table_name ORDER BY column) ORDER BY column
จะได้ record ที่ 11-20 ครับ ตัวเลขสีน้ำเงินเป็นค่า offset ครับ ส่วนตัวเลขสีแดงคือ จำนวน record ที่ต้องการ
Mon 18 Sep 2006 21:29:42
คือแบ่งหน้าได้ครับว่าต้องการกี่หน้าแต่ติดปัญหาตรงที่เวลาทำการค้นหาแล้วเกิดมี 2 หน้าขึ้นไปเช่นถ้าเลือกทั้งหมดมี 17 รายการ แต่ถ้าผมค้นหาเฉพาะชื่อทุนจะได้ 15 รายการหน้าแรกจะบอกอย่างนี้แต่พอเลือกไปหน้า 2 กลับขึ้นเป็น 17 รายการเหมือนเดิมครับ
case "ประเภททุน" sql ="Select * From QrScholarship WHERE Als_Name Like '%" & keyword & "%' And YearsSch Like '%"&select_year&"%' ORDER BY AsLakhID"
case "ชื่อทุน" sql ="Select * From QrScholarship WHERE Asd_name Like '%" & keyword & "%' And YearsSch Like '%"&select_year&"%' ORDER BY AsLakhID"
case "ทั้งหมด" sql ="Select * From QrScholarship ORDER BY AsLakhID"
end select
น่าจะอยู่ที่โค๊ดนี้ล่ะครับ เป็นการ select ทั้งหมด ลองทำการตรวจสอบว่าถ้ามีการส่งตัวแปร page มาใน query string ก็ให้ทำการ select เลือกเฉพาะช่วงที่ต้องการครับ ตามคำสั่งข้างบนครับ ส่วนนึงเป็นการทำให้ application เร็วขึ้นมากครับ ถ้ามีหลายๆหน้าขึ้นมา
Mon 18 Sep 2006 23:49:57
ตอนนี้ได้แล้วครับ..แต่ติดนิดหน่อยครับถ้าเกิดฟ้องขึ้นมาแล้วเมื่อกด ok อยากให้ text เครียร์ข้อความที่กรอกออกไปต้องทำยังไงครับ
function clearForm(obj){
obj.textBox.value = '';
}
</script>
<form ...>
<input type="text" name="textBox">
<input type="reset" value="Reset" onclick="clearForm(this.form);">
</form>

















