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);
これで、デフォルト値の設定がされます。
Copyright 1997-2010 BBB All rights reserved.