codecamp

PHP8 处理 XForms

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

XFroms 的第一个关键区别是表单怎样发送到客户端。» XForms for HTML Authors 包含如何创建 XForms 的详细说明。处于本教程的目的,将只看简单的示例。

示例 #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" 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 变量中,只要将 method 属性修改为 urlencoded-post 就可以指示客户端浏览器将其作为 application/x-www-form-urlencoded 发送。

示例 #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" 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。如果上述例子失败,请检查自己的浏览器版本。


PHP8 会话
PHP8 POST 方法上传
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

PHP8 语言参考

PHP8 函数参考

PHP8 影响 PHP 行为的扩展

PHP8 Componere

PHP8 安装/配置

PHP8 外部函数接口

PHP8 选项和信息

PHP8 选项/信息 函数

PHP8 Windows Cache for PHP

PHP8 WinCache 函数

PHP8 Yac

PHP8 身份认证服务

PHP8 Radius 函数

PHP8 压缩与归档扩展

PHP8 Phar

PHP8 Zip

PHP8 ZipArchive 类

PHP8 加密扩展

PHP8 OpenSSL

PHP8 OpenSSL 函数

PHP8 Sodium 函数

PHP8 数据库扩展

PHP8 针对各数据库系统对应的扩展

PHP8 CUBRID 函数

PHP8 Firebird/InterBase

PHP8 Firebird/InterBase函数

PHP8 MongoDB介绍驱动程序体系结构和特殊功能

PHP8 MongoDB\Driver\Command 类

PHP8 MongoDB\Driver\Query 类

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }