使用flash消息让用户选择启动功能

时间:2013-04-18 14:47:02

标签: email cakephp cakephp-2.3 flash-message


我是cakephp的新人 我需要知道是否有办法让我的应用用户选择通过短信发送通知电子邮件。

我已经谷歌搜索了但是我没有找到答案......听起来很奇怪,因为这种方法几乎在每个应用程序中使用...

类似的东西:

    $this->setFlash('Do you wish to send a notification email?', //yes or no);

    //and if the choice is 'Yes'
    $this->sendEmail();

谢谢!

1 个答案:

答案 0 :(得分:1)

根据我的理解,蛋糕中的闪光灯只是用于通知目的 但是,我已经设法使用javascript(或类似的东西)。

从视图中你可以添加一个函数,在flash div上添加“yes或no”按钮(用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消息,如flash_send_email类,并且在该构造函数中已经定义了按钮及其各自的javascript,因此在设置时上面的flash消息就像

$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>

同样,我没有尝试过第二种方法,但如果你想在多个视图中使用那种消息,那么基本上是同样的东西可以重复使用。

所有这一切,我仍然认为flash消息应仅用于通知目的,任何其他与用户的交互都可以通过自定义div,弹出窗口等进行。给它一个想法,也许它不是绝对必要的为此使用flash。