2009年07月16日

誰がリクエストしたか?

Ethnaでサイトを構築中なのですが、画面にある複数のボタンのうち、
どのボタンが押されたか判定する方法でちょっと悩んでます。

別画面に遷移するボタンもあるんだけど、検索ボタンとか再描画ボタンとか
同じ画面を再表示するボタンが複数あるので。

考え付いた方法は2通り。

・ボタンが押されたときに動かすアクションを別のものにして、viewかtemplateは
 共通化してしまう
・ボタンが押されたときにonclickイベントなどでformの中のhidden項目の値を
 書き換えて、その値でpostの元となるボタンを判断する

処理を共通化したいものもあるので、後者を採用する予定ですが、他に
いい方法があるのかなぁ・・・。
うーむ。
ラベル:Ethna PHP
posted by しげ at 16:00| Comment(2) | TrackBack(0) | PHP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんにちは。

同じアクションで処理をするのであれば、
<input type="submit" name="search" value="検索" />
のようにして

searchでActionFormに宣言しておいて、
if ($this->af->get('search'))
で処理を分けるとかいかがでしょうか?

うちでやる場合、検索の場合には、
条件が来ていたら絞り込み、来ていなかったら初期表示としておいて
同じ処理で両方さばけるようにしていたりします。

一覧で、おしたボタンの行を削除とかだと submitボタンを
name="delete[{$item.id}]" みたいな風にして
keyから引っ張り出して頑張ったりとかしています。

参考になれば。。
Posted by maru_cc at 2009年07月16日 16:58
maru_ccさん、返事がおそくなってすみません。

検索・一覧表示の画面で、検索ボタンやら追加ボタンやら複数のボタンがあるので、教えていただいた方法がぴったり当てはまりそうです。

ありがとうございました!!
Posted by しげ at 2009年08月03日 16:31
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。