Symfony2 / Javascript删除警报

时间:2015-02-14 22:08:45

标签: javascript php jquery symfony

这个问题的主要部分涉及我如何在javascript文件中定义路由。与此同时,我只想确保我所做的事情还可以。基本上,在我的视图页面上,我可以看到我的记录。当我输出记录时,我给出的每一行

<input type="button" value="Delete" onclick="delete_alert( {{ alert[0].id }} )"/>

这为用户提供了删除警报的选项。在直接进入之前,我想首先将其发送到javascript。

function delete_alert(id){
    var answer = confirm("Confirm delete");
    if (answer){
        $.get("NickAlertBundle_delete", { row: id });
    }
}

因此,如果确认删除,则会调用此路由

NickAlertBundle_delete:
    pattern:  /view-alerts
    defaults: { _controller: NickAlertBundle:Alert:delete }
    requirements:
       _method:  GET

我的第一个问题是他们正在从视图提醒页面删除提醒。一旦他们确认删除,我不希望他们去任何地方,只需刷新视图警报页面(因为这将删除已删除的警报)。但是给删除路由提供了一种混淆或错误的视图模式?它是我想要做的,因为我希望他们留在这个页面,只是感觉不对。

无论如何,我真正的问题是错误

  

找不到GET / NickAlertBundle_delete的路线(来自   http://localhost:8000/view-alerts;)(404 Not Found)

所以我不认为我在javascript文件中定义路由的方式是正确的。那么我该如何解决这条路线呢? 感谢

1 个答案:

答案 0 :(得分:2)

我认为您应该使用URL作为jQuery get的第一个参数。您当前正在使用Symfony2路由名称,而不是URL。

将其更改为/alert-views

您可以将数据属性添加到包含路径的HTML按钮中。如果您使用Twig作为模板引擎,则可以编写如下内容:

data-url={{path('NickAlertBundle_delete')}}

然后使用attr() jQuery函数点击按钮:

var url = $(this).attr('data-url');

最后,jQuery get函数可以发送到url

我希望它有所帮助。