这个问题的主要部分涉及我如何在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文件中定义路由的方式是正确的。那么我该如何解决这条路线呢? 感谢
答案 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
。
我希望它有所帮助。