【问题标题】:Symfony 2 add confirm message to actionSymfony 2 将确认消息添加到操作中
【发布时间】:2015-05-22 15:16:01
【问题描述】:

我想知道是否有办法在Symfony2 中执行操作之前添加确认消息。

我知道我可以像这样在html 中添加确认消息:

<a href = {{ my_route }} onclick="return confirm('Are you sure do you want to delete this file?')>" 

但问题是我的页面不会包含在任何twig 文件中,所以我可以在我的Controller class 中添加确认消息吗?

编辑

正如我在 cmets 中所说,我的页面将在 Salesforce 中用作名为 Details 的字段:我已经将 my_url 添加为 javascript,如下所示:

Details= "javascript:document.onClick = window.location.href = my_url"

它有效,但我仍然不知道如何添加确认消息 给Details field

【问题讨论】:

  • 我对 Salesforce 一无所知,所以我没有答案,但作为一般性评论......使用 GET 请求进行更改(例如删除文件)的操作是错误的。您的 onclick 代码仅在客户端执行 Javascript 时发生。如果有人知道 URL,没有什么能阻止浏览器直接访问路由,而不是通过您的链接。如果它是一个公共网站,那么即使是 Google 的爬虫也可以访问并删除您的文件。任何进行更改都应该使用 POST 或更具体的方法来完成,但绝不能使用 GET。
  • 最好的解决方案是在控制器中执行此操作,如下所示:stackoverflow.com/a/33176513/3250587

标签: php symfony controller action confirm


【解决方案1】:

我认为没有办法做到这一点。确认消息是在客户端执行的操作。您不能从 PHP 添加任何基于操作的消息。

您的页面将包含在哪里?如果不在 Twig 视图中

编辑:

我认为这可以帮助你:https://jsfiddle.net/5u6wepc5/

HTML代码

<div>
    <input type="text" id="input" value="salesforce"/>
    <input type="button" id="button" value="delete"/>
</div

Javascript 代码

$("#button").click(function(e) {
    //this prevents that the form is submitted
    e.preventDefault(); 

    if(confirm('are you sure ?')) {
         alert('clicked ok');
        //do what you want here
    } else {
         alert('clicked cancel');
        //do what you want here
    }
});

【讨论】:

  • 它将包含在自定义对象的Formula 字段中的Salesforce
  • 在 UI 上发生的任何操作都将在客户端处理。不能用Javascript在你想要的字段上添加控件吗?
  • javascript code 可以作为链接包含,但我不知道如何将 url 添加到 javascript code
  • 我不确定你的意思是什么,但这就是你如何包含一个javascript文件&lt;script src="path/to/your/javascript.js"&gt;&lt;/script&gt;你能更明确一点,给我们一些你在做什么的代码示例?
  • 我已经在javascript 中包含了这样的网址:"javascript:document.onClick = window.location.href = 'my_url';" 但我仍然不知道如何在重定向到my_url 之前添加确认消息
猜你喜欢
  • 1970-01-01
  • 2012-01-13
  • 2016-09-08
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
相关资源
最近更新 更多