当用户点击删除按钮时,代码会向服务器发送请求,先从数据库中删除该用户,然后再从屏幕上的表格列表中删除。
我的问题是没有ajax成功的if else语句会返回我想要的内容。
我无法将此代码添加到小提琴手,因为它链接到无法在线访问的数据库。
$(nTd).children('a').click(function(e) {
e.preventDefault();
var that = $(this);
if(that.hasClass('icon-i-remove')){
$.ajax({
url: $(this).attr('href'),
type: $(this).attr('method'),
dataType: 'json',
success: function (data) {
//PROBLEM HERE **********
if(data.success == 'true' ){
alert('true');
} else {
alert('false')
};
;}
});
所以,2个主要问题。 if语句无法正确运行。即使它返回true,服务器也会跳到其他地方而不关心它。
第二个问题是这个。 当用户单击“删除”按钮时,代码应首先检查用户是否已在数据库中删除。如果我从数据库中获得了ok,那么我可以从表列表中删除该行而不刷新页面,否则我应该显示错误消息(false return)
就我而言,当我点击删除时,代码会向服务器发送请求,而不关心结果是什么。
我需要在执行客户端删除之前等待代码。我需要知道该用户是否已从数据库中删除。 我觉得很难管理if语句。看起来它并没有从后端看到结果。
无论是真是假,都会跳过任何一种方式。出了什么问题?
答案 0 :(得分:3)
它实际上正在返回'true'
吗?还是回归true
?两件不同的事情
<强>更新强>
$(nTd).children('a').click(function(e) {
e.preventDefault();
var that = $(this);
if(that.hasClass('icon-i-remove')){
$.ajax({
url: $(this).attr('href'),
type: $(this).attr('method'),
dataType: 'json',
success: function (data) {
//PROBLEM HERE **********
if(data.success == true ){ <-- Change to true (remove quotes)
alert('true');
} else {
alert('false')
};
;}
});
答案 1 :(得分:0)
如果您的ajax成功回调正在执行..这意味着服务器端操作已完成SUCCESFULLY。
如果没有,那么服务器不应该发送一个将被解释为成功的200