mirror of
https://github.com/php/doc-ru.git
synced 2026-03-26 00:32:15 +01:00
123 lines
5.4 KiB
XML
123 lines
5.4 KiB
XML
<?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
|
||
-->
|