<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >处理 XForms</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="特点" HREF="features.html"><LINK REL="PREVIOUS" TITLE="会话" HREF="features.sessions.html"><LINK REL="NEXT" TITLE="文件上传处理" HREF="features.file-upload.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="chapter" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="features.sessions.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="features.file-upload.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="chapter" ><H1 ><A NAME="features.xforms" >章 37. 处理 XForms</A ></H1 ><P > <A HREF="http://www.w3.org/MarkUp/Forms/" TARGET="_top" >XForms</A > 定义了一种传统 web 表单的变种,它可以用于更多的平台和浏览器,甚至非传统的媒体例如 PDF 文档。 </P ><P > XFroms 的第一个关键区别是表单怎样发送到客户端。<A HREF="http://www.w3.org/MarkUp/Forms/2003/xforms-for-html-authors.html" TARGET="_top" >XForms for HTML Authors</A > 包含有怎样创建 XForms 的详细说明。本节只看一个简单例子。 </P ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN6989" ></A ><P ><B >例 37-1. 一个简单的 XForms 搜索表单</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="html" ><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></PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ><P > 上面的表单显示一个文本输入框(命名为 <CODE CLASS="parameter" >q</CODE >)和一个提交按钮。当点击提交按钮,表单将被发送到 <TT CLASS="literal" >action</TT > 所指示的页面。 </P ><P > 下面是从 web 应用端的角度看上去的区别。在普通的 HTML 表单中,数据发送格式是 <TT CLASS="literal" >application/x-www-form-urlencoded</TT >,在 XForms 的世界中,该信息是以 XML 格式数据发送的。 </P ><P > 如果选择使用 XForms,那么数据为 XML,这种情况下,在 <CODE CLASS="varname" >$HTTP_RAW_POST_DATA</CODE > 中包含了由浏览器产生的 XML 文档,可以将其传递给所偏好的 XSLT 引擎或者文档解析器。 </P ><P > 如果对格式不感兴趣,只想让数据进入到传统的 <CODE CLASS="varname" >$_POST</CODE > 变量中,可以指示客户端浏览器将其以 <TT CLASS="literal" >application/x-www-form-urlencoded</TT > 格式发送,只要将 <CODE CLASS="parameter" >method</CODE > 属性改成 <SPAN CLASS="emphasis" ><I CLASS="emphasis" >urlencoded-post</I ></SPAN > 即可。 </P ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN7004" ></A ><P ><B >例 37-2. 使用 XForm 来产生 <CODE CLASS="varname" >$_POST</CODE ></B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="html" ><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></PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 在写本文档时,许多浏览器还不支持 XForms。如果上面例子失败请检查自己的浏览器版本。 </P ></BLOCKQUOTE ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="features.sessions.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="features.file-upload.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >会话</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="features.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >文件上传处理</TD ></TR ></TABLE ></DIV ></BODY ></HTML >