WML - Gửi dữ liệu đến máy chủ

Nhiều lần, bạn sẽ muốn người dùng của mình gửi một số dữ liệu đến máy chủ của bạn. Tương tự như HTML Form WML cũng cung cấp cơ chế gửi dữ liệu người dùng đến máy chủ web.

Để gửi dữ liệu đến máy chủ trong WML, bạn cần các thẻ <go> ... </go> cùng với các thẻ <postfield />. Thẻ <postfield /> phải được đặt trong cặp thẻ <go> ... </go>.

Để gửi dữ liệu đến máy chủ, chúng tôi thu thập tất cả các biến WML đã đặt và sử dụng các phần tử <postfield> để gửi chúng đến máy chủ. Các phần tử <go> ... </go> được sử dụng để đặt phương thức đăng thành POST hoặc GET và để chỉ định tập lệnh phía máy chủ để xử lý dữ liệu được tải lên.

Trong các chương trước, chúng tôi đã giải thích nhiều cách khác nhau để lấy mẫu đầu vào của người dùng. Các phần tử đầu vào này đặt các biến WML thành các giá trị đã nhập. Chúng tôi cũng biết cách lấy giá trị từ các biến WML. Vì vậy, bây giờ ví dụ sau đây cho thấy cách gửi ba trường tên, tuổigiới tính đến máy chủ.

<?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>

Khi bạn tải xuống mã trên trên thiết bị WAP của mình, nó sẽ cung cấp cho bạn tùy chọn để nhập ba trường tên, tuổigiới tính và một liên kết Gửi dữ liệu . Bạn sẽ nhập ba trường và cuối cùng bạn sẽ chọn liên kết Gửi dữ liệu để gửi dữ liệu đã nhập đến máy chủ.

Các phương pháp thuộc tính của thẻ <go> quy định cụ thể tag mà phương thức HTTP nên được sử dụng để gửi dữ liệu mẫu.

Nếu phương thức HTTP POST được sử dụng, dữ liệu biểu mẫu được gửi sẽ được đặt trong nội dung thông báo của yêu cầu. Nếu phương thức HTTP GET được sử dụng, dữ liệu biểu mẫu được gửi sẽ được thêm vào URL. Vì một URL chỉ có thể chứa một số lượng ký tự giới hạn, phương thức GET có nhược điểm là có giới hạn kích thước cho dữ liệu được gửi. Nếu dữ liệu người dùng chứa các ký tự không phải ASCII, bạn nên sử dụng phương thức POST để tránh các vấn đề về mã hóa.

Có một điểm khác biệt chính giữa HTML và WML. Trong HTML, thuộc tính name của thẻ <input> và <select> được sử dụng để chỉ định tên của tham số sẽ được gửi đi, trong khi trong WML, thuộc tính name của thẻ <postfield> được sử dụng để làm điều tương tự. Trong WML, thuộc tính name của <input> và <select> được sử dụng để chỉ định tên của biến để lưu trữ dữ liệu biểu mẫu.

Chương tiếp theo sẽ hướng dẫn bạn cách xử lý dữ liệu được tải lên ở cuối máy chủ.