私が理解している限り、ケーキのフラッシュは通知目的のためだけです。
しかし、私はjavascriptを使用してそれ(または同様のこと)を行うことができました。
ビューから、フラッシュ div に「はいまたはいいえ」ボタンを追加する関数を追加し (firebug などで ID をチェックしてください)、これらのボタンを実際にメッセージを送信する ajax 呼び出しにバインドできます。
何かのようなもの
<script>
$(function() {
$('#div_of_the_flash_msg'.append('<div id="yes-button">Yes</div> or
<div id="no-button">No</div>));
$('#yes-button, #no-button').on('click', function() {
$.ajax(/*parameters for the ajax call to the controller with the $this->sendEmail() action*/);
});
});
</script>
これは私がそれらのケースに対して行ったことですが、それが最善の方法であると100%確信することはできません...
クラスのような新しい種類のフラッシュメッセージを作成しflash_send_email
、そのコンストラクターで、それぞれのjavascriptを使用してボタンが既に定義されているため、上記のフラッシュメッセージを設定すると、次のようになります
$this->Session->setFlash('Do you wish to send a notification email?', 'flash_send_email');
flash_send_email.ctp (Views の Elements フォルダー内) は次のようになります。
<div class="your-class">
<?php echo $message //that's the message you send by parameter on the controller?>
<div id="yes-button">Yes</div> or <div id="no-button">No</div>
</div>
<script>
//same script as above to handle the click situations
</script>
繰り返しますが、2 番目のアプローチは試していませんが、基本的には同じことですが、そのようなメッセージを複数のビューで表示したい場合は、もう少し再利用可能です。
以上のことから、フラッシュメッセージは通知目的でのみ使用する必要があると私はまだ信じています。ユーザーとのその他のやり取りは、カスタム div、ポップアップなどによって行うことができます。考えてみてください。これ。