【问题标题】:Symfony2/Javascript delete alertSymfony2/Javascript 删除警报
【发布时间】:2015-02-14 22:08:44
【问题描述】:

这个问题的主要部分与我如何在 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 未找到)

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

【问题讨论】:

    标签: javascript php jquery symfony


    【解决方案1】:

    我认为您应该使用 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

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多