- 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 属性用于指定用于存储表单数据的变量的名称。
下一章将教您如何在服务器端处理上传的数据。