PHP > メモ > フォームクラスとデザインパターン
2006年01月28日
ちょっとずつ形になってきたフォームを取り扱うクラス。 次なる課題は入力チェックとエラー処理とその振る舞い。
入力チェックの際にエラーが発生した時に、
$error['フォーム名']にエラーメッセージを入れといて、
どこからでも取得出来るようにしたい。
例えば
<html>
<head>
</head>
<body>
<form>
<?php $form->dispAllError(); ?>
<?php $form->disp('name'); ?>
<?php $form->disp('age'); ?>
<?php $form->disp('address'); ?>
<?php $form->disp('phone'); ?>
<?php $form->disp('mail'); ?>
</form>
</body>
</html>
のようなhtmlテンプレートで、
入力チェックの際に何らかのエラーが発生してれば
$form->dispAllError()は何らかのエラーメッセージを吐き、
エラーが無ければ何も吐かない。
ついでにdisp()メソッドもエラーがあれば値を保持した、 状態のフォーム部品を、無ければ実際に送信した内容をhtmlで表示すれば、 htmlテンプレートはスマートになるかな?
でもそれだと、プレゼンテーションロジックが分断されてしまうので、
あくまでプレゼンテーションデータとして保持するほうがいいのかな?
disp()でフォームタグを吐く時点で既にプレゼンテーションロジックが分断されてる気もするが・・・
ならば、
<?php $disp = new disp(); ?>
<html>
<head>
</head>
<body>
<form>
<?php $disp->formError(); ?>
<?php $disp->formName(); ?>
<?php $disp->formAge(); ?>
<?php $disp->formAddress(); ?>
<?php $disp->formPhone(); ?>
<?php $disp->formMail(); ?>
</form>
</body>
</html>
<?php
class disp {
var $form;
function disp(){
//フォームクラスのインスタンス
$this->form = new sampleForm();
}
function formError(){
//エラーメッセージが格納されてるかどうか。デフォルトはNULL、格納されてれば配列
if(is_array($this->form->errorMsg)){
foreach($this->form->errorMsg as $msg){
print '<b style="font-size:larger">'.$msg.'</b><br>';
}
}
}
function formName(){
if(is_array($this->form->errorMsg)){
//入力された値を保持したままフォームの部品を表示
print $this->form->disp('name');
}else{
//入力された値を表示
print $this->form->get('name');
}
print '<br>';
}
function formAge(){ }
function formAddress(){ }
function formPhone(){ }
function formMail(){ }
}
?>
みたいな感じで書くのがいいのだろうか? そもそもデザインパターンとかあんまり理解していないし難しいな。 もう少し考えよう。
posted by 37to at : 01:41 | コメント (0) | トラックバック (0)
コメント
投稿する
トラックバック
トラックバックURI
一覧
この記事に対するトラックバックはまだありません。

この記事に対するコメントはまだありません。