※ ChatGPTを利用し、要約された質問です(原文:クラスについて)
自作フォームクラスでのフォーム生成と配列追加方法
このQ&Aのポイント
自作フォームクラスを使用してフォームの出力やエラーチェックを統括する方法を学びましょう。
自作フォームクラスを使用することで、フォームの生成を簡潔にし、フォームに値を追加する際は配列を使用することができます。
具体的な実装方法は、addElementメソッドを使用して要素を追加し、配列に値を格納していくことで実現できます。
フォームの出力やエラーチェックを統括する自作クラスを作ろうとおもっております。
略すぎですが以下のようなソースの場合$formに値を返し配列にしていくにはどうすれば可能でしょうか?
class Form
{
public function __construct()
{
}
function addElement($type, $name, $label, $arr) {
return "<textarea name=\"$name\"></textarea>";
}
}
$form = new Form();
$form->addElement('textarea', 'message', 'メッセージ:', array('rows' => 13, 'cols' => 58));
//同様に必要な分addElementでフォーム生成
うまく表せないのですがclass内で$formに配列を追加していくイメージになるのでしょうか?
例えば単純に
$str = $form->addElement('textarea', 'message', 'メッセージ:', array('rows' => 13, 'cols' => 58));
とすれば$strに格納されるのですがpearのhtml_quickformを参考にしてみたところ出力されるものが
結果が全て$formに格納されるようでした。
できるだけソースもすっきりさせたくこのような方法を取り入れたいと思い最終的には$formをsmartyに
渡し表示させたいと思っております。
また、詳細な仕様もまだ決め兼ねている状態でこのようなものを自作するにあたり参考になる情報等が
ありましたら是非教えて頂けますと幸いです。
上記のpearを参考にしようと思ったのですがファイル数も多く入り組んでおりなかなか理解できない状態です^^;
お礼
お返事ありがとうございます。 早速ですが配列として生成する場合で既に詰まっている感じです^^; 時間は掛かりそうですがひとまずここらでクローズさせて頂きアドバイスを頂いた事を整理しながら じっくりやってみたいと思います。 なかなか書籍にも載っておらず理解に苦しむ状態でしたがご丁寧に教えて頂きましてありがとうございました^^