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 屬性用於指定用於儲存表單資料的變數的名稱。

下一章將教您如何在伺服器端處理上傳的資料。

廣告

© . All rights reserved.