プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
CakePHP1.3系、1つのフォームに複数のsubmitボタンを配置。
ひとつのフォーム内にボタンを複数配置してですね。
押すボタンによって飛び先を変えたかったのですよ。

ただし(--)b

どちらもフォーム内の入力情報は次画面に引き継ぐ。

まぁ要はpost先を変えたかったのです。
別に難しいことは何もないこの処理、
CakePHPではどーやってやんの?(--;
ってのがそもそもの始まりでした。

JavaScriptでformのaction書き換えるとかは
やっぱマズいよね?(^^;

ってな訳でいろいろ調べてみたのですが、
結論から言うと見つかりませんでした(-A-)

だからフレームワーク嫌いなんだよ(-A-)
と愚痴っても仕方ないので飛ばし先は一つにして
どのボタン押されたかで処理を振り分けるように実装。
これがCakePHPの場合、普通なのかな(--?

やり方φ(--)

1.取りあえず一つのフォームの中に複数のsubmitボタン配置φ(--)

      <?php echo $this->Form->submit("戻る", array("name" => "back"));?>
      <?php echo $this->Form->submit("進む", array("name" => "go"));?>



2.Controller側で押されたボタンによって処理を振り分ける。
  redirectしても良いしrenderでもいーんじゃないですかね。
  $this->params["form"][押されたボタンのname属性]の有無をチェックすると
  押されたボタンが分かるらしいですφ(--)

  if(isset($this->params['form']['back'])){
      //「戻る」を押された場合の処理
  }else if(isset($this->params['form']['go'])){{
      //「進む」を押された場合の処理
  }



完了\(--)/
まぁ今回はこれで済んだけど本当に飛び先を分けたい場合は
どーすればいーんでしょ(--?
最悪はあれですかね。




フレームワークのヘルパーなんぞ使わないで直書きかね(-。-;ぼそっ
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:CakePHP1.3系  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事