QuickFormで事前にフォームに値をセットする[Pear::QuickForm]

メモ:  Category:pear

QuickForm で事前にフォームに値をセット(デフォルト値を設定)するには、 setDefaults 関数を使用します。

設定する値は、連想配列として setDefaults に渡すことでデフォルト値の設定が行えます。

連想配列のキーには、addElementで指定したnameを指定します。

<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->display();

?>
</body>
</html>

上記スクリプトは、$defaultValueに設定したい値を連想配列として設定します。 「お名前は?」には、bnoteと表示されラジオボタンは、男が選択されるように設定します。

checkboxやadvcheckboxにデフォルト値を設定するには、valueを与えておきます。

$defaultValue['chk'] = 'checked';

$objQF->addElement('advcheckbox','chk',null,'チェックしてください'
                      ,null,array('not checked', 'checked'));

$objQF->setDefaults($defaultValue);

checkboxやadvcheckboxをグループ化したときは、以下のように設定します。

for($i=0; $i<10; $i++) {
    $chk[] = $objQF->createElement('advcheckbox',$i,'チェック' . $i
                          ,null,null,array('not checked', 'checked'));
}
$objQF->addGroup($chk,'GRP',null,null);
$defaultValue['GRP'] = Array('0'=>'checked','1'=>'checked');
$objQF->setDefaults($defaultValue);

これで、デフォルト値の設定がされます。

bluenote by BBB