通过AJAX删除对象后重新加载内容页面


Reload content page after delete a object via AJAX

我有一个按钮,我希望它能通过AJAX调用事件。此事件用于删除DB记录,因此我希望更新内容而不使用删除值/行。我想也许我应该把我的代码放在.ajax调用的成功中,但我的疑问是如何刷新内容?我是否需要第二个AJAX调用来获取没有删除值/行的新内容?

提前感谢

如果您使用ajax,为什么要刷新页面?我们使用ajax来避免页面刷新。如果你需要的话,你可以尝试在ajax.success()函数中添加window.location.reload();函数。这是一个例子,以防对你有用http://www.amitpatil.me/ajax-table-adding-removing-rows-dynamically-using-javascript-animation/

您可以在同一个调用中使用它。在ajax调用指向的DELETE脚本中,只添加查询并使用json_encode()将数据发回。然后您只需更新页面的特定区域。

或者,如果你想偷懒,在ajax成功返回后,只需执行:

window.location.reload();

这将刷新页面。

如果使用AJAX删除记录,则不需要重新加载所有页面内容(这是AJAX的目标)。在这种情况下,您必须通过移除JavaScriptDOM元素来更改内容。

如果你用AJAX删除一些带有id的记录,你会执行类似于的操作

$("#deleteBtn").click(function() {
    // detect ID of the record (var id = ...)
    // call AJAX with post(...) or ajax(...)
    $("#id" + id).remove();  
});

或者,如果您对AJAX结果执行remove()函数以获得更高的安全性,并且只有当您的服务器端脚本确实已经从DB中删除了记录时才将其删除,效果会更好。

在我的示例中,假设您使用行(或其他HTML元素)的id属性来存储记录的id,以便将来通过$("#id"+id)进行访问。您需要一些入口点来通过记录id查找DOM元素。

在我看来,有很多方法可以做到这一点。

1:使用数据库行中的唯一ID将行包装在容器中,然后使用该ID删除/隐藏刚从页面中删除的行。

2:正如您所提到的,您可以再次获取数据并打印它,但这在性能方面不是很有效。

/关于