New Documentation: Dealing with XForms

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@151953 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Sara Golemon 2004-02-20 18:05:32 +00:00
parent f46de98880
commit 29ff31d864

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.29 $ -->
<!-- $Revision: 1.30 $ -->
<chapter id="tutorial">
<title>A simple tutorial</title>
@ -424,6 +424,96 @@ Hi Joe. You are 22 years old.
<function>import_request_variables</function> function.
</para>
</sect1>
<sect1 id="tutorial.xforms">
<title>Dealing with XForms</title>
<para>
<ulink url="&url.xforms;">XForms</ulink> defines a variation on traditional
webforms which allows them to be used on a wider variety of platforms and
browsers or even non-traditional media such as PDF documents.
</para>
<para>
The first key difference in xforms is how the form is sent to the client.
<ulink url="&url.xforms.htmlauthors;">XForms for HTML Authors</ulink>
contains a detailed description of how to create XForms, for the purpose
of this tutorial we'll only be looking at a simple example.
</para>
<example>
<title>A simple XForms search form</title>
<screen>
<![CDATA[
<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>
]]>
</screen>
</example>
<para>
The above form displays a text input box (named <parameter>q</parameter>),
and a submit button. When the submit button is clicked, the form will be
sent to the page referred to by action.
</para>
<para>
Here's where it starts to look different from your web application's point
of view. In a normal HTML form, the data would be sent as
application/x-www-form-urlencoded, in the XForms world however, this information
is sent as XML formatted data.
</para>
<para>
If you're choosing to work with XForms then you probably want that data as
XML, in that case, look in $HTTP_RAW_POST_DATA where you'll find the XML
document generated by the browser which you can pass into your favorite
XSLT engine or document parser.
</para>
<para>
If you're not interrested in formatting and just want your data to be loaded
into the traditional $_POST variable, you can instruct the client browser
to send it as application/x-www-form-urlencoded by changing the
<parameter>method</parameter> attribute to <emphasis>urlencoded-post</emphasis>.
</para>
<example>
<title>Using an XForm to populate $_POST</title>
<screen>
<![CDATA[
<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>
]]>
</screen>
</example>
<note>
<simpara>
As of this writing, many browsers do not support XForms.
Check your browser version if the above examples fail.
</simpara>
</note>
</sect1>
<sect1 id="tutorial.oldcode">
<title>Using old code with new versions of PHP</title>