2012-06-06 再び CakePHP – 2.0でのキャンセル、リセット・ボタンの判別

  echo $this->Form->create('Physician', array('type' => 'delete'));
  echo $this->Form->input('id', array('type' => 'hidden'));
  echo $this->Form->submit('削除', array('name' => 'delete'));
  echo $this->Form->submit('キャンセル', array('name' => 'cancel', 'type' => 'reset'));
  echo $this->Form->end();

というフォームを作成し、PhysiciansController.phpの中で、’delete’という名前と’cancel’という名前のボタンが押されたことをそれぞれ判別したいのですが、どちらのボタンを押しても、delete()というアクションに飛んでしまい、その中でボタンの判別ができないのです。
随分と色々試したり、コントローラーの中で pr()関数を用いて、どのようにオブジェクトが飛んでくるかを表示させたりしたのですが、ボタンを判別できるようなプロパティは無いのです。
それでコントローラーでの判別を止めて、以下のようにJavascriptと組み合わせることにしました。

上と同じなので省略ね
 echo $this->Form->submit('キャンセル', array('name' => 'cancel', 'onClick' => 'history.back()'));
  省略ね

これでとりあえずキャンセルボタンを押せば削除がキャンセルされて前のページに戻るようになりました。
うーん これは CakePHP流なのでしょうか? どうもすっきりしません。どなたかケーキ屋さん、教えて下さいな。

投稿者: (KAMAKURA & SAPPORO)Dr_Radialist

Expert Interventional Cardiologist and Amateur Computer Programmer

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です