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流なのでしょうか? どうもすっきりしません。どなたかケーキ屋さん、教えて下さいな。