Ajax 功能无法在不刷新页面的情况下正常删除

Posted

技术标签:

【中文标题】Ajax 功能无法在不刷新页面的情况下正常删除【英文标题】:Ajax function not working properly for deleting without refreshing page 【发布时间】:2019-11-16 00:00:35 【问题描述】:

我正在解决一个问题,我需要在不刷新列表页面的情况下删除数据库中的条目。但是,使用我创建的 ajax 函数和视图,数据被删除但成功函数未更改为 true。列表页面按原样显示,手动刷新已删除数据时不显示。另外,由于我是 ajax 新手,所以我不太了解在 ajax 中的数据字典中要删除什么内容。我在代码中做错了什么?请在不刷新页面的情况下帮助我这样做。(我需要留在中心列表页面上)。提前致谢。

<script>

$(document).on('click','#delete',function()
 var a ;
 a=confirm("Do you really want to delete the user?");
if(a==true)
 var url = "% url 'NewApp:centredelete' pk=1%"
 var id = $(this).attr('name')
 $.ajax(

    type:"GET",
    url: url.replace('1',id),
    data:
          delete:true
    ,
    success: function( data )
    
        if(data.success == true)
           $(id).remove();

         

     
     )
);
</script>

views.py

def CentreDeleteView(request, pk):
data = 'success': False
centre = Centre.objects.get(pk=pk)
print(centre)
if request.method == 'GET':
    try:
        if centre:
            centre.delete()
            data['success'] = True

        else:
            data['success'] = False
            data['error'] = "unsuccessful!"
    except Centre.DoesNotExist:
        return redirect('/NewApp/centrelist')
return JsonResponse(json.dumps(data))

【问题讨论】:

不相关,但如果您使用的是JsonResponse,那么您不必使用json.dumps 'var id = $(this).attr('name')' 返回什么?您是否尝试过使用 $(id).remove();有真实的身份证? name= modelname.id 在我的模板中。是的,id 有实际的 id。 【参考方案1】:

您没有阻止默认提交事件的发生。

$(document).on('click','#delete',function(event)
  event.preventDefault();
  ..
);

【讨论】:

这似乎没有任何作用。

以上是关于Ajax 功能无法在不刷新页面的情况下正常删除的主要内容,如果未能解决你的问题,请参考以下文章

CRUD - 如果页面没有刷新,添加和删除一个接一个地不起作用

如何在不刷新页面加载的情况下保留 jQuery 和 Bootstrap 功能?

如何使用 Django、Ajax、jQuery 在不刷新页面的情况下提交表单?

如何在不刷新的情况下使用 Ajax 在 ASP.NET MVC 中保存表单数据

如何在不刷新页面的情况下使用 ajax 保存 acf_form

使用 ajax 在不刷新站点的情况下更改 mongoDB 中的某些项目