【问题标题】:Ajax and Mongodb, use _idAjax 和 Mongodb,使用 _id
【发布时间】:2016-07-12 03:52:47
【问题描述】:

我有一个使用 express.js 的测试项目,它在网页上显示 mongo 数据库中的所有项目。每个数据库条目都显示在页面上,并带有一个删除它的按钮。

-each i in docs
        p ----------------------
        p <strong>Name: #{i.name}
        p <strong>Type: #{i.type}
        p <strong>Amount: #{i.quantity}
        p <strong>ID: #{i._id}    
        input(type = 'button', value ="delete item", id='delete')

我希望按钮向/api/item/_id发送删除请求

我的脚本如下

script(type='text/javascript').
        $(document).ready(function() {
            $("#delete").click(function() {

                $.ajax({
                    type: 'DELETE',
                    url: '/api/item/' + this._id
                }).done(function(result) {

                });
            });
        });

这不是发送所需的请求。我将如何将 _id 从项目传递给按钮?

如果我将 URL 设置为已知 _id,如下所示,它可以工作并且该项目被删除

url: '/api/item/56f3e800d6f24d0819e43fcc'

提前感谢

【问题讨论】:

  • 按钮的 data- 属性怎么样?

标签: javascript ajax node.js mongodb express


【解决方案1】:

使用data-属性

HTML

<input type="button" id="delete" data-id="mongo id here" />

JS

 $.ajax({
   type: 'DELETE',
   url: '/api/item/' + this.attr('data-id')
 })

另外你最好使用 class 而不是 id="delete"

【讨论】:

  • 谢谢!解决了问题!
【解决方案2】:

如果我理解您的循环代码,您似乎为每个按钮分配了相同的 HTML ID 属性:

input(type = 'button', value ="delete item", id='delete')

这会导致 invalid HTML(只有一个项目可以具有给定的 ID)。您可以将delete 属性设为,在该类中拥有多个具有相同类的项目是合法的。

如果你console.log(this) 当任何这些按钮被点击时this 指的是什么?你得到了什么_id?不管点击什么按钮,你得到相同的_id 吗?

【讨论】:

    猜你喜欢
    • 2016-10-08
    • 1970-01-01
    • 2015-01-02
    • 2015-04-24
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    相关资源
    最近更新 更多