0

ユーザーが削除ボタンをクリックすると、コードはサーバーにリクエストを送信して、最初にそのユーザーを DB から削除し、次に画面のテーブル リストから削除します。

私の問題は、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 にジャンプします。

2番目の問題はこれです。ユーザーが削除ボタンをクリックすると、コードは最初にユーザーが DB で削除されているかどうかを確認する必要があります。DB から OK があれば、ページを更新せずにテーブル リストから行を削除できます。それ以外の場合は、エラー メッセージを表示する必要があります (false return)。

私の場合、削除をクリックすると、コードはサーバーにリクエストを送信し、結果がどうなるかは気にしません。

クライアント側の削除を実行する前に待機するコードが必要です。そのユーザーがデータベースから削除されたかどうかを知る必要があります。if ステートメントの do を管理するのは難しいと思います。バックエンドから返された結果を見ていないようです。

true または false どちらの方法でもスキップします。何がうまくいかないのですか?

4

2 に答える 2

4

それは実際に戻ってい'true'ますか?それとも戻ってきtrueますか?2つの異なるもの

アップデート

$(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 に答える