1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 00:32:15 +01:00
Files
archived-doc-ru/features/xforms.xml

123 lines
5.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: fc174e8d6162091550edde46159917ee7e5a2e73 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="features.xforms" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Работа с XForms</title>
<para>
<link xlink:href="&url.xforms;">XForms</link> являются
альтернативой традиционным веб-формам, и позволяют использовать
их на множестве платформ и браузеров, а также реализовывать
нестандартные представления форм, например, в виде PDF-документа.
</para>
<para>
Первое существенное отличие XForms заключается в том, как форма отсылается
клиенту. Руководство
<link xlink:href="&url.xforms.htmlauthors;">XForms for HTML Authors</link>
содержит детальное описание создания XForms. Для того, чтобы
очертить основную идею руководства, приведём несколько простых примеров.
</para>
<example>
<title>Простая поисковая форма XForms</title>
<programlisting role="html">
<![CDATA[
<h:html xmlns:h="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/2002/xforms">
<h:head>
<h:title>Поиск</h:title>
<model>
<submission action="http://example.com/search"
method="post" id="s"/>
</model>
</h:head>
<h:body>
<h:p>
<input ref="q"><label>Что искать?</label></input>
<submit submission="s"><label>Найти</label></submit>
</h:p>
</h:body>
</h:html>
]]>
</programlisting>
</example>
<para>
Приведённая выше форма отображает текстовое поле для ввода
(названное <parameter>q</parameter>) и кнопку для отправки формы,
при нажатии на которую все введённые данные будут отправлены
скрипту, указанному в поле <literal>action</literal>.
</para>
<para>
Тут мы подошли к ещё одному существенному различию с точки зрения
вашего веб-приложения. Стандартная HTML-форма отправляет данные
как <literal>application/x-www-form-urlencoded</literal>, а XForms
для передачи данных использует разметку <acronym>XML</acronym>.
</para>
<para>
Если вы решили работать с XForms, скорее всего вы захотите
получить отправленные пользователем данные в формате
<acronym>XML</acronym>. В таком случае обратите внимание
на переменную <varname>$HTTP_RAW_POST_DATA</varname>, в ней
содержится <acronym>XML</acronym>-документ, сгенерированный
браузером, который в дальнейшем можно обработать предпочитаемым
вами движком <acronym>XSLT</acronym> или парсером документа.
</para>
<para>
Если разметка вас не интересует, и вы хотите, чтобы передаваемые
данные были помещены в стандартный массив <varname>$_POST</varname>,
вы можете указать клиентскому браузеру на необходимость
отправлять данные в формате <literal>application/x-www-form-urlencoded</literal>.
Для этого установите атрибут <parameter>method</parameter> значением
<emphasis>urlencoded-post</emphasis>.
</para>
<example>
<title>Использование XForm совместно с массивом <varname>$_POST</varname></title>
<programlisting role="html">
<![CDATA[
<h:html xmlns:h="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/2002/xforms">
<h:head>
<h:title>Поиск</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>Что искать?</label></input>
<submit submission="s"><label>Найти</label></submit>
</h:p>
</h:body>
</h:html>
]]>
</programlisting>
</example>
<note>
<simpara>
В дополнение к вышесказанному следует заметить, что большое
количество браузеров не поддерживают XForms.
Если приведённые примеры потерпели неудачу, проверьте версию
используемого вами браузера.
</simpara>
</note>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->