第四節:另一種預訂你電影票的方法
在上一節中,我講解了最基本的WAP和WML的概念,這一節我們就來看看ASP和WAP是如何結合的.
現在在奧斯陸,電影院提供了一種基於電話系統的來銷售門票,這個系統是很復雜的,還必須給用戶一些說明才能指導用戶買票,而且用戶還必須在報紙上找到某種電影的代碼,這個很煩,我們來介紹另一種方法。
這裡這將給你展示一個簡單的讓手機用戶訂票的WAP應用:一個肯定讓人叫好的服務。用戶不必記住那些煩人的代碼,他們能夠直接從菜單中選取電影和電影院,並且用戶也不需要認證。在這個例子中用戶被要求在電影開始前40分鐘交費,但是在真正的生活中,用戶同樣可以通過手機來結帳.
此應用程序想像的條件是一個電影能夠在同一時間在多個電影院上映,一個電影院不同的時間上演不同的電影。
這裡我沒有過多的考慮錯誤處理的問題,因為這不是本章節的重點,你喜歡你可以自己加上.
為了簡單,我使用了Access 97來做為數據庫,當然真正的系統不會用它了,其它的數據庫如SQL Server,也不必改動多少代碼.
數據庫圖表
數據庫圖表
.Movie 和Theater表是顯然需要的。Show表用於追蹤現在還有多少空位可以出售。
怎樣調試這個程序
為了訪問這個WAP服務,你需要一個WAP仿真器,這個程序主要是在Nokia Toolkit 1.2上調試,詳細情況請查看上一章節。
選擇電影
在list表中選擇一個電影:
這裡是代碼:
< !--#include file=/"conn.asp/" -- >< % 'send the right MIME type
Response.ContentType = /"text/vnd.wap.wml/"
第一件事就是聲明wml,仿真器如何不在正確的地方聲明XML,它是不會接受WML的盡管Nokia 7110可以忽略這一點,但是不能保證其它的手機也行,所以你不得不做這事。同樣你也得設置好MIME類型。
< ?xml version=/"1.0/"? >
< !DOCTYPE wml PUBLIC /"-//WAPFORUM//DTD WML 1.1//EN/" /"http://www.wapforum.org/DTD/wml_1.1.xml/" >
< wml >
在進入下一個card以前會有一個閃爍的屏幕來顯示一個圖片WBMP一種新的格式。這個事件是由timer屬性決定的,這裡我們設置的時間為5秒.ontimer事件引發後將帶你去另一個card.(wmbp的photoshop插件可以從網上免費下載).
< card id=/"splash/" ontimer=/"#card1/" title=/"Welcome to/" > < timer value=/"50/"/ >
< p align=/"center/" >
< br / >
< img src=/"pix/logo.wbmp/" alt=/"WAP movies/"/ >
< /p >
< /card >
< card id=/"card1/" title=/"choose a film/" >
< %
sqlQuery = /"SELECT [Movie_ID], [title] FROM Movie/"
set rsMovies = conn.Execute(SQLquery)
:
% >
< p >
< select name='movie' >
< %
Do while not rsMovies.eof
response.write(/"<&
12下一頁