<?php
/**
* Simpleな確認画面を出すフォーム
*/
require_once 'HTML/QuickForm/Controller.php';
require_once 'HTML/QuickForm/Action/Display.php';
// Start the session
session_start();
// 1st input page
class InputPage extends HTML_QuickForm_Page
{
function buildForm()
{
$this->_formBuilt = true;
$this->addElement('header', 'input_header','Input your information');
$this->addElement('text','username','username:', array('size' => 30, 'maxlength' => 70));
$this->addElement('text','email','email:', array('size' => 30, 'maxlength' => 70));
$buttons[0] =& HTML_QuickForm::createElement('reset', 'cancel', 'Cancel');
$buttons[1] =& HTML_QuickForm::createElement('submit', $this->getButtonName('next'), 'Confirm >>');
$this->addGroup($buttons, 'buttons', '', ' ', false);
$this->setDefaultAction('next');
}
}
// 2nd confirm page
class ConfirmPage extends HTML_QuickForm_Page
{
function buildForm()
{
$this->_formBuilt = true;
$this->addElement('header', 'data_header', 'Your personal data');
$post = $this->controller->exportValues('page1');
$this->setDefaults(
array(
'username' => $post['username'],
'email' => $post['email']
)
);
$this->addElement('static', 'username', 'username :');
$this->addElement('static', 'email', 'email :');
$prevnext[] =& $this->createElement('submit', $this->getButtonName('back'), '<< 戻る');
$prevnext[] =& $this->createElement('submit', $this->getButtonName('next'), '送信');
$this->addGroup($prevnext, 'buttons', '', ' ', false);
$this->setDefaultAction('next');
}
}
// レンダラを使って画面定義を行う。
class ActionDisplay extends HTML_QuickForm_Action_Display
{
function _renderForm(&$page)
{
$renderer =& $page->defaultRenderer();
// $page->setRequiredNote('<font color="#FF0000">*</font> shows the required fields.');
// $page->setJsWarnings('Those fields have errors :', 'Thanks for correcting them.');
$renderer->setFormTemplate(
'<table width="450" border="0" cellpadding="3" cellspacing="2" bgcolor="#CCCC99"><form{attributes}>{content}</form></table>'
);
$renderer->setHeaderTemplate(
'<tr><td style="white-space:nowrap;background:#996;color:#ffc;" align="left" colspan="2"><b>{header}</b></td></tr>'
);
$renderer->setGroupTemplate(
'<table><tr>{content}</tr></table>', 'name'
);
$renderer->setGroupElementTemplate(
'<td>{element}<br /><span style="font-size:10px;"><!-- BEGIN required --><span style="color: #f00">*</span><!-- END required --><span style="color:#996;">{label}</span></span></td>', 'name'
);
$page->accept($renderer);
echo $renderer->toHtml();
}
}
// 実際に行うActionを定義
// とりあえず送信されてきた情報を表示するとかしてみるよ。
class ActionProcess extends HTML_QuickForm_Action
{
function perform(&$page, $actionName)
{
$values = $page->controller->exportValues();
echo '<pre>';
var_dump($values);
echo '</pre>';
}
}
$wizard =& new HTML_QuickForm_Controller('regWizard', true);
$wizard->addPage(new InputPage('page1'));
$wizard->addPage(new ConfirmPage('page2'));
$wizard->addAction('display', new ActionDisplay());
$wizard->addAction('process', new ActionProcess());
$wizard->run();
?>