HTML_QuickFormのチェックボックスについて
smartyと連携させて作っています。
チェックボックスで取得した値を任意の場所に指定させたいのですが
どのようにすればできるのでしょうか?
現状は、チェックボックスの値は正常に表示されるのですがメール本文
の最下部に表示されてしまい任煮の場所に表示させたいのですが方法がわかりません。
「現状のメール本文」
===============================================================
【氏名】
nameに入力した値
【選択】
Array //←Arrayではなくここに選択肢の値を入れたい
===============================================================
cb3の値 //←ここに選択肢の値は表示させたくない
中身は以下のようになっています。(抜粋)
<?php
$form->addElement('text', 'name', '氏名');
$checks = array();
$checks[] =& HTML_QuickForm::createElement('checkbox', 'cb3_1', null, 'cb3_1_label');
$checks[] =& HTML_QuickForm::createElement('checkbox', 'cb3_2', null, 'cb3_2_label');
$checks[] =& HTML_QuickForm::createElement('checkbox', 'cb3_3', null, 'cb3_3_label');
$form->addGroup($checks, 'cb3', '選択', "<br />\n");
$form->addGroupRule('cb3', '選択は必須項目です', 'required', null, 1);
$message = <<<EOD
===============================================================
【氏名】
{$value['name']}
【選択】
{$value['cb3']}
===============================================================
EOD;
foreach ($value['cb3'] as $k => $v) {
switch ($k) {
case 'cb3_1' : $message .= "選択肢1が選択されました。\n"; break;
case 'cb3_2' : $message .= "選択肢2が選択されました。\n"; break;
case 'cb3_3' : $message .= "選択肢3が選択されました。\n"; break;
}
}
mb_send_mail($to, $subject, $message, "From: {$value['email']}");
$form->freeze();
} else if ($form->validate() && isset($value['confirm'])) {
} else {
}
?>
補足
早速の回答ありがとうございます。 ちょうど参考URLのスクリプトで試していたところでした。http://pear.php.net/manual/en/package.html.html-quickform.tutorial.phpの「Your first form」は動作しますので、HTML_QuickFormは問題ないのです。ですが、参考URLの「SMARTYとの連携」の部分がダメなんです。 回答頂きましたスクリプトを試してみたのですが、 -----2.php----- <?php require_once 'HTML/QuickForm.php'; require_once 'HTML/QuickForm/Renderer/ArraySmarty.php'; require_once 'Smarty.class.php'; $form = new HTML_QuickForm(); $form->addElement('text','name','Name'); $renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty); $form->accept($renderer); $smarty->assign('form',$renderer->toArray()); $smarty = new Smarty(); $smarty->display("2.tpl"); ?> -----2.php----- <html> <head> <title>TEST</title> </head> <body> {$form.name.html} </body> </html> どうもテンプレートすら呼び出していないようです。「$form = new HTML_QuickForm();」~「$smarty->assign('form',$renderer->toArray());」をコメントアウトしたら、テンプレートを呼び出しました。これは一体どういうことなのでしょうか。