Q&A
Cakephp3に関してですが
同一フォーム内にsubmitが複数存在する場合、
Controller側で判別するにはどうすれば良いでしょうか?
cakephp2からおそらくform関連の仕様が変更されており
方法がわかりません。
教えていただきたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答3件
3
ベストアンサー
引用テキスト同一フォーム内にsubmitが複数存在する場合、
submitする手段がボタンの場合、以下で凌ぎました。
①「name」を追加
view
<?php echo $this->Form->submit(__(' 作成 ',true),array( 'name' => 'hoge', ));?> <?php echo $this->Form->submit(__(' 作成 ',true),array( 'name' => 'moge', ));?>
②
コントローラでif文などで分岐して処理を分ける
controller
if (isset($this->request->data['hoge'])) { } elseif ($this->request->data['moge'])) { }
cakephp3で通用するかはわかりませんが、ご参考までに。
投稿2016/07/14 03:48
編集2016/07/14 03:49総合スコア44
2
formのactionを分ける方法が良いと思います。
PHP
1echo $this->Form->create($entity, ['url' => ['action' => 'login']]); 2echo $this->Form->end();
formをcreateする際に'url'というoptionでactionを指定する事が出来ます。
ちなみにですがcontrollerも代えたい場合は同じようにoptionで指定する事が出来ます。
PHP
1echo $this->Form->create($entity, ['url' => ['controller' => 'Users', 'action' => 'login']]); 2echo $this->Form->end();
他にも単純な方法としては識別できるデータをhiddenでformに仕込んで判断する方法があります。
PHP
1echo $this->Form->create($entity); 2echo $this->Form->hidden('type', ['value' => 'formA']) 3echo $this->Form->end();
投稿2016/07/13 14:55
総合スコア27
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
0
基本的にはformを分けるのがセオリーだと思います。
どうしても1つのフォーム内に複数のボタンを入れたいということであれば、javascriptでsubmitボタンを押したときにポスト先のurlを書き換えるか、hiddenフィールドをform内に入れておいて、jsでどのボタンが押されたかを入れる。
という方法があるかと思います。
投稿2016/07/14 09:20
総合スコア1939
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
Q&A
解決済
asp.net core で input type="file" の選択内容を保持する
回答3
クリップ1
更新
2023/05/31
Q&A
解決済
PHP foreach内のPOSTで送る値
回答2
クリップ2
更新
2019/09/01
Q&A
解決済
ボタンのcssが一部にしか効かない
回答2
クリップ0
更新
2023/05/06
Q&A
解決済
spring bootで新規登録機能を作成したい。
回答1
クリップ0
更新
2023/06/02
Q&A
解決済
Ajaxでフォームの内容をPHPに渡してPDFを作成し文字列を引き渡し、受け取った文字列をjavascriptでPDF化したい
回答2
クリップ0
更新
2023/06/02
Q&A
解決済
htmlの検索フォームにcssを適用させたいです。
回答1
クリップ0
更新
2023/06/02
意見交換
受付中
Wordpressのphpファイルにデータベースの接続情報を直接記入しても大丈夫なのでしょうか。
回答39
クリップ3
更新
2023/05/25
同じタグがついた質問を見る
CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。