处理 XForms

» XForms 定义了一种传统 web 表单的变种,它可以用于更多的平台和浏览器,甚至非传统的媒体例如 PDF 文档。

XFroms 的第一个关键区别是表单怎样发送到客户端。» XForms for HTML Authors 包含有怎样创建 XForms 的详细说明。本节只看一个简单例子。

Example #1 一个简单的 XForms 搜索表单

<h:html xmlns:h="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/2002/xforms"> <h:head> <h:title>Search</h:title> <model> <submission action="http://example.com/search" method="post" xml:id="s"/> </model> </h:head> <h:body> <h:p> <input ref="q"><label>Find</label></input> <submit submission="s"><label>Go</label></submit> </h:p> </h:body> </h:html>

上面的表单显示一个文本输入框(命名为q)和一个提交按钮。当点击提交按钮,表单将被发送到action所指示的页面。

下面是从 web 应用端的角度看上去的区别。在普通的 HTML 表单中,数据发送格式是application/x-www-form-urlencoded,在 XForms 的世界中,该信息是以 XML 格式数据发送的。

如果选择使用 XForms,那么数据为 XML,这种情况下,在$HTTP_RAW_POST_DATA中包含了由浏览器产生的 XML 文档,可以将其传递给所偏好的 XSLT 引擎或者文档解析器。

如果对格式不感兴趣,只想让数据进入到传统的$_POST变量中,可以指示客户端浏览器将其以application/x-www-form-urlencoded格式发送,只要将method属性改成urlencoded-post即可。

淘宝 adsense 商品推荐

Google AdSense实战宝典 用谷歌广告联盟出海赚美元 第2版 祁劲松 网站运营书籍 seo搜索引擎优化 广告营销 AdSense从入门到精通

价格:41.08元

Example #2 使用 XForm 来产生$_POST

<h:html xmlns:h="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/2002/xforms"> <h:head> <h:title>Search</h:title> <model> <submission action="http://example.com/search" method="urlencoded-post" xml:id="s"/> </model> </h:head> <h:body> <h:p> <input ref="q"><label>Find</label></input> <submit submission="s"><label>Go</label></submit> </h:p> </h:body> </h:html>
在写本文档时,许多浏览器还不支持 XForms。如果上面例子失败请检查自己的浏览器版本。