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

时间:2012-08-23 13:45:37

标签: php jquery ajax database events

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

提前致谢

4 个答案:

答案 0 :(得分:2)

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

或者,如果您想要懒惰,在从ajax成功返回后,只需执行:

window.location.reload();

将刷新页面。

答案 1 :(得分:2)

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

如果您使用带有某些ID的AJAX删除某些记录,则执行以下操作:

$("#deleteBtn").click(function() {

    // detect ID of the record (var id = ...)
    // call AJAX with post(...) or ajax(...)

    $("#id" + id).remove();  

});

或者更好的是,如果您对AJAX结果执行 remove()功能以获得更高的安全性,并且仅当您的服务器端脚本确实从数据库中删除记录时才将其删除。

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

答案 2 :(得分:1)

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

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

2:正如您所提到的,您可以再次获取数据并进行打印,但这在性能方面效率不高。

/问候

答案 3 :(得分:1)

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