0

当用户单击删除按钮时,代码会向服务器发送一个请求,首先将该用户从数据库中删除,然后从屏幕上的表列表中删除。

我的问题是,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,服务器也会跳转到else而不关心它。

第二个问题就是这个。当用户单击删除按钮时,代码应首先检查用户是否已在数据库中删除。如果我从数据库中获得了 ok,那么我可以在不刷新页面的情况下从表列表中删除该行,否则我应该显示错误消息(错误返回)

就我而言,当我单击删除时,代码会向服务器发送一个请求,而不关心结果是什么。

在执行客户端删除之前,我需要等待代码。我需要知道该用户是否已从数据库中删除。我发现很难管理 if 语句。似乎它没有从后端查看结果。

无论真假,它都会跳过任何一种方式。怎么了?

4

2 回答 2

4

它真的回来了'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')
            };
       ;}
   });
于 2012-09-26T18:28:28.653 回答
0

如果您的 ajax 成功回调正在执行.. 这意味着服务器端操作已成功完成。

如果不是,则服务器不应发回 200 将被解释为成功

于 2012-09-26T18:30:29.933 回答