[PHP-users 26731] QuickForm+Smartyでのフォーム配列の表現について

arts net arts_net @ hotmail.com
2005年 9月 1日 (木) 16:08:20 JST


皆さん、はじめまして、artsと申します。
 
現在checkboxの値を配列で受け取る表現を
QuickFormで作成し、Smartyで吐くようにしようとしています。
QuickFormを使わないで純粋にHTMLでフォームを作成した場合
 
<input type='checkbox' name='address[]' value='東京都中央区'>
<input type='checkbox' name='address[]' value='東京都千代田区'>
<input type='checkbox' name='address[]' value='東京都新宿区'>
<input type='checkbox' name='address[]' value='東京都渋谷区'>
 
という具合で作成する場合が多いと思います。
しかしQuickFormを使った場合PHP側で
 
$form->addElement('checkbox', 'address[]', null, '東京都中央区');
$form->addElement('checkbox', 'address[]', null, '東京都千代田区');
$form->addElement('checkbox', 'address[]', null, '東京都新宿区');
$form->addElement('checkbox', 'address[]', null, '東京都渋谷区');
 
という具合になると思うのですが、そうするとSmartyテンプレートでは
 
{$form.address[].html} {$form.address[].label}
 
と書いて呼ぶことになりますが、お察しのとおりブラケット"[]"があるため
syntax error: unrecognized tag: $form.address2[].html
となります。Smartyのエスケープをマニュアルで見たのですが
htmlエスケープやエンコードのことしか書いてなくて使い方がよくわかりません。
この場合具体的にどのようにコードしたらいいのでしょうか?
 
他のエレメントは正常にSmartyテンプレートに吐かれますし
上記の例も「address[]」でなく「address」というnameにしてしまえば正常に動作し
ます。
ただ値を受け取った後のロジックをできれば以前のまま使いたいので
どうしても配列で受け取りたいのです。SmartyやQuickFormは最近使い始めたばかり
で
不慣れでしょうもない質問かもしれませんがどなたかご教授ください。よろしくお願
いします。
 
arts
arts_net @ hotmail.com




PHP-users メーリングリストの案内