- WML 教程
- WML - 首頁
- WML - 概述
- WML - 環境
- WML - 語法
- WML - 元素
- WML - 註釋
- WML - 變數
- WML - 格式化
- WML - 字型
- WML - 圖片
- WML - 表格
- WML - 連結
- WML - 任務
- WML - 輸入
- WML - 提交資料
- WML - 伺服器指令碼
- WML - 事件
- WML - 定時器
- WML - 模板
- WML - DTD
- WML2 - 教程
- WML 參考
- WML - 實體
- WML - 標籤參考
- WML 有用資源
- WML - 快速指南
- WML - 有用資源
- WML - 討論
WML - 向伺服器提交資料
很多時候,您希望使用者將一些資料提交到您的伺服器。類似於HTML 表單,WML 也提供了一種機制將使用者資料提交到 Web 伺服器。
要在 WML 中將資料提交到伺服器,您需要使用<go>...</go>以及<postfield/>標籤。<postfield/>標籤應包含在<go>...</go>標籤對中。
要將資料提交到伺服器,我們會收集所有設定的 WML 變數,並使用<postfield>元素將它們傳送到伺服器。<go>...</go>元素用於將釋出方法設定為 POST 或 GET,並指定一個伺服器端指令碼以處理上傳的資料。
在前面的章節中,我們解釋了從使用者那裡獲取輸入的各種方法。這些輸入元素將 WML 變數設定為輸入的值。我們也知道如何從 WML 變數中獲取值。因此,以下示例顯示瞭如何將三個欄位姓名、年齡和性別提交到伺服器。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card id="card1" title="WML Form">
<p>
Name: <input name="name" size="12"/>
Sex : <select name="sex">
<option value="male">Male</option>
<option value="female">Female</option>
</select>
Age : <input name="age" size="12" format="*N"/>
<anchor>
<go method="get" href="process.php">
<postfield name="name" value="$(name)"/>
<postfield name="age" value="$(age)"/>
<postfield name="sex" value="$(sex)"/>
</go>
Submit Data
</anchor>
</p>
</card>
</wml>
當您在 WAP 裝置上下載上述程式碼時,它將為您提供輸入三個欄位姓名、年齡和性別以及一個連結提交資料的選項。您將輸入三個欄位,然後最後選擇提交資料連結以將輸入的資料傳送到伺服器。
<go>標籤的method屬性指定應使用哪種 HTTP 方法傳送表單資料。
如果使用 HTTP POST 方法,則要傳送的表單資料將放置在請求的訊息正文中。如果使用 HTTP GET 方法,則要傳送的表單資料將附加到 URL。由於 URL 只能包含有限數量的字元,因此 GET 方法的缺點是傳送資料的尺寸有限。如果使用者資料包含非 ASCII 字元,則應使用 POST 方法以避免編碼問題。
HTML 和 WML 之間存在一個主要區別。在 HTML 中,<input>和<select>標籤的 name 屬性用於指定要傳送的引數的名稱,而在 WML 中,<postfield>標籤的 name 屬性用於執行相同的操作。在 WML 中,<input>和<select>的 name 屬性用於指定用於儲存表單資料的變數的名稱。
下一章將教您如何在伺服器端處理上傳的資料。