Ajax 请求'onError'处理程序



我的网站上有一个功能:删除而不刷新页面。用户只需按下"删除",浏览器就会发送Ajax请求。它将加载带有id参数的"delete"脚本。

一切都很好。但由于数据库的引用完整性,它不是很好。例如,可以删除一些人居住的街道。

我想升级我的脚本。我想添加一个删除脚本的检查,如果一些"人"连接到"街道"表,则不允许删除数据。

jQuery按钮点击处理程序:

$('body').on('click', '.deleteStreet', function()
{
var id = $(this).attr('id');
var hideMe = $(this).parent().parent();
var dataString = 'id=' + id;
if(confirm("Are you sure you want to delete street? It is possible some people living there!"))
{
$.ajax({
type: "GET",
url: "/index.pl?mode=streets&action=delete",
data: dataString,
cache: false,
success: function(e)
{
hideMe.hide();
}
});
return false;
}
});

它无论如何都会调用脚本,现在无论如何都会删除数据。我现在可以添加一些检查来删除脚本,它不会删除,但jquery脚本无论如何都能工作,并且无论如何都会隐藏表行(因为请求发送正常,没有404等)

1) 是否可以看到删除脚本的结果,并根据结果隐藏或不隐藏行?例如,它会返回true或false,js脚本会捕捉到它,并根据它显示关于删除或不删除数据的消息。

2) 这个问题是由我的网站结构引起的。index.pl上有一些开关,并根据查询加载适当的脚本(mode=street然后加载street.plmode=user然后加载users.pl等)。因此,它将显示在delete.pl脚本之前加载的所有数据,并且不可能检查脚本是否返回true或false。

有什么帮助吗?:)非常感谢。

附言:我很抱歉我糟糕的英语。

您可以在成功回调的第一个参数中获得ajax调用的结果。例如:

$.ajax({
type: "POST",
url: "/index.pl?mode=streets&action=delete",
data: dataString,
cache: false,
success: function(e)
{
if(e === '1'){
hideMe.hide();
}
}
});

尝试在控制台中记录测试结果:console.log(e)。对于删除数据,您应该使用POST请求(或DELETE,但并非所有浏览器都支持)。

我不知道你的数据(街道)是什么样子的,但另一种方法是在删除请求结果的json对象中返回所有现有的街道。并刷新所有行。

相关内容

最新更新