
フォーム画面を作っているのですが、
どうしても処理を分けたい内容が出てきたので
submitを2つ作って処理を分けることにしました。
submitに名前を付ける
PHPでも普通にできるsubmitボタンに名前を付けて
コントローラー側で名前を判断して処理をするという
仕組みを実装します。
ビューファイルでsubmitに名前を付けたものを準備
<?php echo $this->Form->create('Model'); ?>
・・・
略
・・・
<?php echo $this->Form->submit('確認画面へ', array('name' => 'submit')); ?>
<?php echo $this->Form->submit('削除する', array('name' => 'delete')); ?>
<?php echo $this->Form->end(); ?>
上記の様に配列のname属性に値を入れると
submitに名前が付けられます。
コントローラーでどのsubmitが押されたか判断
受け取るコントローラー側
if ($this->request->is('post') || $this->request->is('put')) {
if(!empty($this->data)){
// deleteのsubmitボタンを押された時の処理
// if(isset($this->params['data']['delete'])) { //これでもOK
if(isset($this->request->data['delete'])) {
//削除ボタンの場合の処理
}elseif(isset($this->request->data['submit'])){
//確認画面への場合
}
}
}
$this->request->dataでボタンの名前を記して
受け取れば、どのボタンが押されたか判断できます。
後は、そのボタンを押した場合の処理を書いていけばOKです。
