mojavi + QuickFormで独自ルール追加

2006/01/06 | mojavi2

mojavi + QuickForm で独自ルールを追加する際のサンプル。
ここではユーザID登録のように、データベースと一意性を絡めたルールを追加した。
仮定:データベースへの接続はPearのDBを使用
—————————————————
function initialize(&$controller, &$request, &$user){
 //親クラスinitialize関数を呼び出す
 parent::initialize(&$controller, &$request, &$user);
 //親クラスで定義したDBオブジェクトを変数に格納
 $mydb=$request->getAttribute(‘mydb’);
 $myForm=new HTML_QuickForm(‘myForm’,’post’);
 $myForm->addElement(‘text’,’userID’,’ユーザID’);
 $myForm->registerRule(‘idCheck’,’callback’,’_idCheck’,get_class($this));
 $myForm->addRule(‘userID’,’そのIDは使用中です’,’idCheck’,$mydb);
}

function _idCheck($value,$mydb){
 $sql=”SELECT user_id FROM tbl_user WHERE user_id='” . $value . “‘;”;
 $result=$mydb->query($sql);
 if(DB::isError($result)){
  return false;
 }elseif($result->numrows()>0){
  return false;
 }else{
  return true;
 }
}

これでできるはず。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net