QuickFormでGETやPOSTされたデータの処理[Pear::QuickForm]

大抵の場合フォームでsubmitされたデータは、ファイルに保存したり、データベースに保存したり 何らかの処理がされます。

QuickFormでは、validateした後にガツガツ処理を書くかprocess関数を使ってフォームに入力されたデータを処理できるようにします。

process関数には、コールバックされる関数又はオブジェクトとメンバ関数を指定します。

<html>
<head>
<title>QuickForm サンプル</title>

</head>
<body>
<?php
    require_once "HTML/QuickForm.php";

    $objQF = new HTML_QuickForm('frmQF', 'get');

    $defaultValue = array('txtNAME'=>'bnote','rdoSEX'=>'男');

    $objQF->addElement('text', 'txtNAME', 'お名前は?');
    $objQF->addElement('radio', 'rdoSEX','', '男',0);
    $objQF->addElement('radio', 'rdoSEX','', '女',1);
    $objQF->addElement('reset', 'btnCLEAR', 'クリア');
    $objQF->addElement('submit', 'btnSUBMIT', '送信');

    //デフォルト値の設定
    $objQF->setDefaults($defaultValue);

    if ($objQF->validate()) {    // フォームの検証
        //フォームに入力された値を凍結する。
        $objQF->freeze();
        $objQF->process('reg_data',false);
    }
    $objQF->display();

    function reg_data($values){
        foreach ($values as $key=>$value) {
            echo $key . ' : ' . $value . '<br>';
        }

    }

?>
</body>
</html>

上記スクリプトは、ユーザー定義のreg_data関数がprocess関数で呼ばれるように定義されています。 reg_data関数では、フォームで入力された値を連想配列として受け取っています。

後は、受け取ったデータを処理して終了です。