• 締切済み

QuickForm createElement での select の使いかたについて

有識者の皆様 PHP QuickForm にて、以下のようなコードを書いています。 最終的な表示を 訪問履歴 [ ] 年 [ ] 月 [ ] 回 というようにしたいのですが、年・月・日ともに表示できません。 以下に、実際のコードを転記致します。 <?php $monthA = array('選択してください', '01','02','03','04','05','06','07','08','09','10','11','12' ); $yearA = array('選択してください', date('Y'),date('Y', time() - 60*60*24*365*1) ); $countA = array('選択してください', '1','2','3','4','5','6','7','8','9','10' ); $v[] = &HTML_QuickForm::createElement('select', 'year', '年', $yearA); $v[] = &HTML_QuickForm::createElement('select', 'month', '月', $monthA); $v[] = &HTML_QuickForm::createElement('select', 'count', '回', $countA); $form->addGroup($v, null, '訪問履歴', '&nbsp;'); ?> ご回答お願い致します。

みんなの回答

回答No.2

少し調べてみましたが、セパレータとして複数の値を付加方法はなさそうです。 addGroupはradioやcheckboxをまとめるためにあるようで、ラベル付きのselect要素に使用するものではないようです。 ある程度自由なフォーム羅列を望むのであれば、 何か別のライブラリをご利用されたほうが良いかも知れません。(フレームワークとか)

rdilts
質問者

お礼

hogehoge78さん 色々と調査して頂いてありがとうございました。 ひとまず、今回は、別の手法をとってみます。

回答No.1

このソースコードの最後に、 $form->display(); をされておりますか? もし挿入されているのでしたら何かエラーが出てくるとかといったことはありませんでしょうか。 転載されたそのソースにdisplay()を追加したところ正常に動くようでした。

rdilts
質問者

補足

hogehoge78 さま 早速ご回答ありがとうございます。 ソースに不足がありました。失礼しました。<(_ _)> 以下に、display() メソッドを付与した版を転記致します。 元々のソースは display() は付与してあり、以下のような表示になってしまうのですね。 訪問履歴 [] [] [] ちなみに、再度記載しますが、期待している値は、 訪問履歴 [] 年 [] 月 [] 日 です。 <?php require_once 'HTML/QuickForm.php'; $monthA = array('選択してください', '01','02','03','04','05','06','07','08','09','10','11','12' ); $yearA = array('選択してください', date('Y'),date('Y', time() - 60*60*24*365*1) ); $countA = array('選択してください', '1','2','3','4','5','6','7','8','9','10' ); $form = new HTML_QuickForm("myForm"); $v[] = &HTML_QuickForm::createElement('select', 'year', '年', $yearA); $v[] = &HTML_QuickForm::createElement('select', 'month', '月', $monthA); $v[] = &HTML_QuickForm::createElement('select', 'count', '回', $countA); $form->addGroup($v, null, '訪問履歴', ' '); $form->display(); ?> ちなみに、エラーは一切表示されておりません。 では、宜しくお願い致します。

関連するQ&A