【CakePHP2】リンククリック、サブミットボタン押下時に確認アラートを表示する方法
2018/04/03
CakePHP2で、リンクをクリック時、及びフォームボタンをクリック(サブミット)時に、javascriptのアラートウィンドウを表示する方法を備忘録としてポストします。
CakePHPでアラートウィンドウを表示
リンクをクリック時
リンクをクリックした際アラートを表示させるには、第4引数にメッセージを指定します。
1 2 3 4 5 6 |
echo $this->Html->link( '削除', '/members/delete/' . $val['Member']['id'], array('title'=>'削除'), 'メンバーを削除します。よろしいですか?' ); |
実行例
サブミット時
サブミット時は formタグ用のオプションに onsubmit を指定し、直接メッセージを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
echo $this->Form->create( 'Member', array( 'type'=>'post', 'action'=>'add', 'onsubmit'=>'return confirm("メンバーを登録します。よろしいですか?");' ) ); ... ... ... echo $this->Form->end(); |
もしくは、confirmBox などの名前で javascript のfunction を別途作成し、キックする方法があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php echo $this->Form->create( 'Member', array( 'type'=>'post', 'action'=>'add', 'onsubmit'=>'return confirmBox();' ) ); ... ... ... echo $this->Form->end(null); ?> <?php /* 確認ダイアログ用 */ ?> <script type="text/javascript"> <!-- function confirmBox() { // ボタン押下時の処理 if (window.confirm('メンバーの登録を実行します。よろしいですか?')) { onClick = "loading()"; location.href = "<?php echo $this->Html->url('/menbers/add'); ?>"; } else { window.alert('メンバーの登録はキャンセルされました。'); return false; } } // --> </script> |
なるほどですね。