django - 运行ajax在点击 anchor 时删除一条记录

标签 django jquery

我是 jquery 和 ajax 新手,但我刚刚学会了如何使用 jquery ajax 发布表单并保存它,现在我的模板中的表中有一个记录列表,如下所示:

field1  field2  field3 <a href="#" id="rec1">del</a>
field1  field2  field3 <a href="#" id="rec2">del</a>
field1  field2  field3 <a href="#" id="rec2">del</a>
...

现在我想在点击 anchor 标记时删除一条记录。

编辑: 这些记录已经使用 ajax 插入到数据库中,并立即以这种格式显示在表格中,现在我将通过 ajax 单击其 anchor 来删除每条记录。

像这样:

field1  field2  field3 <a href="#" id="rec2" onClick="f({{id}})">del</a>

我该怎么做?

最佳答案

我会尝试

首先:您需要有一个 django View 来删除所选项目

第二个:在 url 文件中定义指向该 View 的模式,例如

(r'^delete/(\d{4})/$', 'delete_item'),

那么你的 javascript 应该是这样的:

function deleteAjax(item_id){
$.ajax({
    url: "delete/"+ item_id +"/",
    data: <the id of the record you want to delete>,
    success: function(){
        //here you do the processing needed to remove the row from the html;
    }
});
}

你的 html 必须改变:

<a id="{{id}}" onclick="deleteAjax({{id}}); return false;"> delete item </a>

点击事件将触发 javascript (deleteAjax) 并通过向其发送要删除的项目的 id 来调用正确的 (django) View

有几点需要注意:

  • django View 必须处理正确的响应,因为它将确定在执行结束时将调用哪个回调(这是 ajax 部分“成功:函数...”,您也可能会失败:函数)

  • 在成功函数中,您必须记住删除与删除项对应的表格行(如果删除成功),否则您必须通知(如果失败)

last:我现在不确定您在 ajax 函数中发送的“data”参数,因为已删除项目的 id 已绑定(bind)到 url。不过,您可以使用它来发送您最终需要的任何内容

关于django - 运行ajax在点击 anchor 时删除一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9521436/

相关文章:

javascript - 匹配标准和离群值输入的正则表达式

python - Ubuntu 导入错误 : Could not import settings (works on Mac)

jquery - bootstrap collapsed toggle on overlay click - 点击时不关闭

jquery - jPLayer Playlist 获取更改时的歌曲名称

python - Python中的模块名称冲突,如何解决?

jquery - 以页面为中心对齐内容

javascript - 如何使用 JS 或 JQuery 对表格进行滚动加载?

Django - CSRF token 生成 - render_to_response 与渲染

python - 找不到页面错误。请求地址是否错误?

python - 你应该在哪里更新 celery 设置?在远程 worker 或发件人?