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関数では、フォームで入力された値を連想配列として受け取っています。
後は、受け取ったデータを処理して終了です。