[PHP-users 29154] Re: mojaviでプルダウンメニュー

Atsushi Kojo a-kojo @ artsnet.jp
2006年 5月 9日 (火) 12:50:07 JST


ああ、すいません。
ものの本質はsmartyにあるんじゃなくて
ひとつのアクションで検索画面も検索結果画面も
出したらどうですか?ということです。
例えばこんな感じでactionを書くってことです。
※DBはADOdb使って書いてます。

 function getDefaultView (&$controller, &$request, &$user)
 {
     $db = $request->getAttribute('db');
     $param = $request->getParameters();

     $sql = "SELECT * FROM t_user";
          
      //検索条件のない場合はすべて検索
      if($param['name'] != NULL)
     {
           $cond = array();
           $name = $param['name'];
           $cond[] = " name LIKE '%" . $name . "%'";
           $sql .= " WHERE" . join(" AND ", $cond);
     }
     $data = $db->GetAll("$sql");   
        
     $user->setAttribute('before', $sql); 
     $request->setAttribute('data', $data);
   return VIEW_SUCCESS;
}

でさっきのテンプレートで表示して
(PHPのテンプレートでもできるはずです)
FORMのPOSTは同じアクションに来るわけです。
ですから検索窓はひとつのテンプレート使ってるから
常に表示されるわけで、検索窓の下に検索結果が
一覧で表示されるわけです。
ただ気をつけるのはMojaviのgetRequestMethodsは
REQ_NONEにしてgetDefaultViewだけで書くってとこです。




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