[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 メーリングリストの案内