<%
dim room_id,pyear,pmonth,pday,ptime,chkok,err
dim rs_preengage,rs_room,rs_save
room_id=request.Form("room_id")
pyear=request.Form("pyear")
pmonth=request.Form("pmonth")
pday=request.Form("pday")
ptime=request.Form("ptime")
%>
<%
if not isdate(pyear & "-" & pmonth & "-" & pday) then
err=1
end if
if err=1 then
%>
<%= "<title>出现错误!</title>" %>
<%
set rs_preengage=server.CreateObject("adodb.recordset")
sql = "select * from preengage where room_id =" & room_id & " and beginhour =" & ptime
sql = sql & "and pyear= " & pyear & "and pmonth=" & pmonth & "and pday=" & pday
rs_preengage.open sql,hotel_conn,3,2
if rs_preengage.eof or rs_preengage.bof then
chkok=1
else
chkok=0
end if
if chkok=1 then
set rs_save=server.CreateObject("adodb.recordset")
sql = "select * from preengage"
rs_save.open sql,hotel_conn,3,2
set rs_room=server.CreateObject("adodb.recordset")
sql = "select * from room where room_id=" & room_id
rs_room.open sql,hotel_conn,3,2
rs_save.addnew
rs_save("user_name")=session("user_name")
rs_save("room_id")=room_id
rs_save("datetime")=now()
rs_save("cost")=rs_room("cost")
rs_save("pyear")=pyear
rs_save("pmonth")=pmonth
rs_save("pday")=pday
rs_save("beginhour")=ptime
rs_save.update
rs_save.movelast
%>
<%= "<title>预约成功</title>" %>
<%= "<title>预约未被接受!</title>" %>
取消预约模块的实现和管理端删除模块使用一个文件,这里就不再详细论述。
6.查看预约模块
用户在预约房间后会有查询预约情况的需求,查询页面主要由文件mine.asp实现,如图30所示。程序清单27是查看预约信息的核心代码。
图30 查看预约
程序清单27 查看预约的关键代码
<%
dim rs_preengage,rs_ground
dim time_out
set rs_preengage=server.CreateObject("adodb.recordset")
sql = "select * from preengage where user_name='" & session("user_name") & "'"
rs_preengage.open sql,hotel_conn,3,2
%>
<body>
<div align="center">
<table width="706" height="281" border="0" class="table_big">
<tr>
<td valign="top"><div align="center">
<!--#include file="include/head.asp" -->
<br>
<table width="605" border="0" class="table_small">
<tr>
<td colspan="7"> </td>
</tr>
<tr>
<td colspan="7" class="text_title"><div align="left">我的预约信息</div></td>
</tr>
<tr>
<td colspan="7" class="table_title"> </td>
</tr>
<% If rs_preengage.eof or rs_preengage.bof Then %>
<tr>
<td colspan="7" class="text"><div align="left">您还没有进行任何预约!</div></td>
</tr>
<% Else %>
<tr class="text">
<td width="105"><div align="left">房间名称</div></td>
<td width="68"><div align="left">房间类型</div></td>
<td width="50"><div align="left">费用</div></td>
<td width="69"><div align="left">预约日期</div></td>
<td width="86"><div align="left">预约时间</div></td>
<td width="117"><div align="left">状态</div></td>
<td width="80">操作</td>
</tr>
<%
rs_preengage.movefirst
while (not rs_preengage.eof)
set rs_room=server.CreateObject("adodb.recordset")
sql = "select * from room where room_id=" & rs_preengage("room_id")
rs_room.open sql,hotel_conn,3,2
%>
<tr class="text">
<td><div align="left"><%= rs_room("name") %></div></td>
<td><div align="left"><%= rs_room("type") %></div></td>
<td><div align="left"><%= rs_room("cost") %></div></td>
<td><div align="left"><%= rs_preengage("pyear")&"-"&rs_preengage("pmonth")&"-"&rs_preengage("pday") %></div></td>
<td><div align="left"><%= rs_preengage("beginhour")&":00-"&(rs_preengage("beginhour")+1)&":00" %></div></td>
<td><div align="left">
<%
If rs_preengage("paid")=1 Then
response.Write("已经付款 ")
else
response.Write("尚未付款 ")
end if
time_out=datediff("d",now,rs_preengage("pyear") & "-" & rs_preengage("pmonth") & "-" & rs_preengage("pday") & " " & rs_preengage("beginhour") & ":00:00")
if time_out < 0 then
response.Write("已经过期")
else
response.Write("尚未到期")
end if
%>
</div></td>
<td>
<% if rs_preengage("paid")=0 and time_out > 0then %>
<a href="cancel.asp?preengage_id=<%= rs_preengage("preengage_id") %>">取消预约</a>
<% end if %>
</td>
</tr>
<%
rs_preengage.movenext
wend
%>
<% End If %>
7.留言模块
留言模块是给用户发表意见和看法的场所。图31所示为发表留言界面。程序清单28是留言功能实现的代码主要部分。
图31 发表留言界面
程序清单28 留言功能实现部分代码lword.asp
<%
dim title,word,check,lword
title=request.Form("title")
word=request.Form("word")
if title="" and word="" then
lword=1
else
check=""
if title="" then check="●没有输入留言标题<br>"
if word="" then check=check & "●没有输入留言内容<br>"
if len(title) > 50 then check=check & "●标题超过50个字符<br>"
if len(word) > 250 then check=check & "●留言超过250个字符<br>"
end if
%>
<body>
<div align="center">
<table width="706" height="281" border="0" class="table_big">
<tr>
<td valign="top"><div align="center">
<!--#include file="include/head.asp" -->
<% If lword=1 Then %>
<br>
<form name="form1" method="post" action="">
<table width="532" border="0" class="table_small">
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td colspan="4" class="text_title"><div align="left">站长留言</div></td>
</tr>
<tr>
<td colspan="4" class="table_title"> </td>
</tr>
<tr class="text">
<td width="40" class="text"><div align="left">标题: </div></td>
<td colspan="3" class="text"><div align="left">
<input name="title" type="text" class="textfield" id="title">
</div></td>
</tr>
<tr class="text">
<td valign="top" class="text"><div align="left">内容: </div></td>
<td colspan="3" valign="top"><div align="left">
<textarea name="word" class="textfield2" id="word"></textarea>
</div></td>
</tr>
<tr>
<td colspan="4" valign="top"> </td>
</tr>
<tr>
<td> </td>
<td width="58"> </td>
<td width="51"><input name="lword" type="submit" class="button_" id="lword" value="留言"></td>
<td width="361"><div align="left">
<input name="reset" type="reset" class="button_" id="reset" value="清空">
</div></td>
</tr>
<tr>
<td colspan="4"> </td>
</tr>
</table>
</form>
<% Else %>
<% If check<>"" Then %>
<br>
<table width="480" border="0" class="table_small">
<tr>
<td> </td>
</tr>
<tr>
<td class="text_title">
<div align="left">留言错误!</div></td>
</tr>
<tr>
<td class="table_title"> </td>
</tr>
<tr>
<td class="text_error"><div align="left"><%= check %></div></td>
</tr>
<tr>
<td class="text"><div align="center">[<a href="lword.asp">返回留言页面</a>]</div></td>
</tr>
<tr>
<td class="text_error"> </td>
</tr>
</table>
<% Else %>
<%
set rs_word=server.CreateObject("adodb.recordset")
sql="select * from word where user_name ='" & session("user_name") & "'"
rs_word.open sql,hotel_conn,3,2
num=rs_word.recordcount
rs_word.close
sql="select * from word"
rs_word.open sql,hotel_conn,3,2
rs_word.addnew
rs_word("user_name")=session("user_name")
rs_word("datetime")=now()
rs_word("title")=title
rs_word("word")=word
rs_word.update
rs_word.close
%>
<br>
<table width="480" border="0" class="table_small">
<tr>
<td> </td>
</tr>
<tr>
<td class="text_title"><div align="left">留言成功</div></td>
&n