PHP マニュアル
前のページ | 第 2章簡易チュートリアル | 次のページ

# XFormsの処理

XForms は、従来のWebフォームから 派生したもので、広範なプラットフォームやブラウザそしてPDFドキュメントのような 従来のメディア以外のものにすら使用することができます。

xformsのまず第一の違いは、クライアントへフォームを送信する方法です。 HTML作成者のためのXForms には、XFormsの作成方法の詳細な解説がありますが、この手引きの趣旨に沿って、 ここでは簡単な例のみ示すことにします。

例 2-8. 簡単な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という名前の),テキスト入力ボックス と投稿ボタンを表示します。投稿ボタンがクリックされた時、このフォームは アクションが参照するページに送信されます。

ここからが、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-9. 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をサポートしていません。 上の例が失敗する場合、ブラウザのバージョンを確認して下さい。

前のページ | ホーム | 次のページ
フォームの処理 | 上に戻る | 新しいバージョンのPHPで古いコードを使用する