WAP中的ASP技术(四)

2016-01-29 19:04 32 1 收藏

WAP中的ASP技术(四),WAP中的ASP技术(四)

【 tulaoshi.com - ASP 】

  选择电影院和上映时间

这部分代码让用户来选择看什么时间的电影,所有的记录根据前一页所选的电影来决定。在这里来选择电影院和上映时间.

movie_id = Request("movie")

sqlQuery = "SELECT title FROM movie WHERE Movie_id = " & movie_id

set rsMovie = conn.Execute(sqlQuery)

movie_title = rsMovie("title")

:

sqlQuery = "SELECT [name], [time], [show_id] FROM Show, Theater " &_

"WHERE show.movie_id = " & movie_id &_

" AND theater.theater_id = show.theater_id"

set rsShows = conn.Execute(SQLquery)

如果你仔细研究了这个代码,你就会想用Session来保存电影信息,再在这页进行查询更简单。同样很不幸,Session是需要
cookies的支持,虽说在WAP规范中也是被支持的,但是在Nokia 7110中也是不被支持,这就是说现在我们还不能把session用在WAP
服务中。

下面有一些有趣的事情:

<select name='show'

<%

Do while not rsShows.eof

response.write("<option value='" & rsShows("show_id") & "'" & Left(rsShows("name"),cutter) & " (" &
rsShows("time") & ")" & "</option" &vbcrlf)

rsShows.MoveNext

loop %

</select

如果你对cutter变量感到疑惑,那么就有一些事让你哭笑不得

Dim cutter

if InStr(Request.ServerVariables("HTTP_USER_AGENT"), "Nokia7110") then

cutter = 12

else

cutter = 7

end if

这段代码根据不同的设备来显示选项。我们有充足的理由的这样做,Nokia Toolit 1.2仿真器喜欢把砍掉我的的选项到只有几个字
符,而我们要显示电影名字和上映时间,所以我们就不得不减少电影名字的字符。在真的手机中不会出现这种问题,所以我们就必
须先判断设备的类型.

一旦我有机会(飞刀我很穷,没有钱,这是仅仅是遥远的梦想.......)在真的Nokia 7110上测试我的代码,我们会立即感到我们
有比我们想像更大的屏幕。实际上,有些电影院的名字很古怪,而且这些长名字会占用很大屏幕空间,我们没有必要浪费这些显示空
间,尽量把这些名字简化。



下一步就是让用户选择需要的票数.这部分的代码很像其它的部分。我将从数据库中查询相同的数据,因为Session不能在真正的
WAP手机中使用,所以我必须对有些内容进行确认,看看是否还有座位出售.

SQLquery = "SELECT * FROM show WHERE Show_id = " & show_id

set rsShow = conn.Execute(SQLquery)

:

seats = rsShow("free_seats")

:

if seats = 0 then

Response.write("Sorry, no more seats")

rsShow.close

set rsShow = nothing

Response.write("</p</card</wml")

Response.end

else

if seats 6 then 'book up to 6 tickets or max available

max_seats=6

else

max_seats = seats

end if

end if

%

<%=movie_title% at <% =theater_name%

<select name='ticket'

<%

dim i

i = 1

Do while i <= max_seats

response.write("<option value='" & i & "'" & i & " ticket(s)" & "</option" &vbcrlf)

i = i + 1

loop %

</select

储存票数

现在我们已经有了所有需要的数据了,我们得把它们保存起来:

tickets = Request("ticket")

:

free_seats = rsShow("free_seats")

:

free_seats = free_seats - tickets

:

SQLUpdate = "UPDATE Show " &_

"SET Show.free_seats=" & free_seats & " " &_

" WHERE Show_ID=" & show_id

conn.Execute(SQLupdate)

SQLquery = "SELECT max([Booking_ID]) as bookingnumber FROM booking"

Set rsBooking = conn.execute(SQLquery)

maxbookid = rsBooking("bookingnumber") + 1


SQLinsert = "INSERT INTO Booking ( show_id, booked_seats ) " & _

"VALUES ('" & show_id & "', '" &a

来源:http://www.tulaoshi.com/n/20160129/1508339.html

延伸阅读
标签: ASP
  用ASP发 WAP MAIL需要以下两个文件: default.asp <% Response.Buffer = True Response.ContentType = "text/vnd.wap.wml" Response.Write "<?xml version=""1.0% <wml   <card id="Intro" title="e8899.com' WAP Mail"     <p align="...
在上面的文章里面我提到了Page.IsPostBack属性的一个应用,可以用来保存用户输入的 信息,下面我将介绍它的另外一个用处,那就是取代ASP中的RS(Remote Scripting)技术。 至于RS的基本概念和用法我已经在asp版里面有很多介绍了,它主要的优势就是在不刷新 当前页面的情况下和服务器端进行通信。但是由于它的底层是使用了java技术,所以它用 起来...
标签: ASP
  mail.asp <% Response.Buffer = True Response.ContentType = "text/vnd.wap.wml" Response.Write "<?xml version=""1.0 %     <%     Set Mail = Server.CreateObject("Persits.MailSender")   '------------------------------------...
标签: Web开发
为了提高网站首页的性能,首页凡是需要调用数据库显示数据的地方都会先试图从缓存中调用数据,如果缓存中没有可用数据再打开数据库取出记录集,为了让页面显示数据和数据库在一定时间内同步,我们把缓存的过期时间设置成30秒。 声明:缓存管理类出自于动网论坛7.0 注意:最好不要在缓存里直接缓存带状态的对象和MTA模式的对象,比如说...
标签: Java JAVA基础
  使用ASP或者JSP来创建动态WML内容,是非常容易的。唯一要注意的就是配置服务器使它的脚本输出类型为"text/vnd.wap.wml",或者在脚本中直接设置输出类型。 下面是一个用JSP输出动态WML内容的例子: <?xml version="1.0"? <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www...

经验教程

165

收藏

60
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部