2017-08-01 13 views
-1

サーバーサイドのデータテーブルからエントリを削除するdelete関数があります。意図は、チェックボックスを介していくつかの項目を選択して削除を押すと、私の関数が呼び出されたときに読み込み画面が表示されます。アイテムの量が適切に削除されると、読み込みが消えてしまいます。Ajax関数の読み込み中止画面

しかし、現時点では、すべてのアイテムが適切に削除されると、読み込み画面は消えません。私は誰かが私がこれで間違っているのを見ることができることを望んでいる。

のAjaxコード

function deleteDocumentPrepare(){ 
    var delCounter = 0; 
    if(checked!==null){ 
     $('.loading').show(); 
     $.each(checked, function(key, value) { 
//   console.log(checked.length); 
      deleteDocument(value,delCounter,checked.length); 
      delCounter++; 
//   console.log(delCounter); 
     }); 

    } 
} 

function deleteDocument(input,current,total){ 
// console.log("current:"+current); 
// console.log("total:"+total); 
    var id = input; 
    $.ajax({ 
     method: "POST", 
     url: "<?php echo site_url('/Common/Check'); ?>", 
     success: function(data){ 
      if("<?php echo $this->data['controller'];?>"=="Support"){ 
       var url = '<?php echo site_url('Admin'.$this->data['controller'].'/Agent/Delete/'); ?>'; 
      }else{ 
       var url = '<?php echo site_url('Admin'.$this->data['controller'].'/Delete/'); ?>'; 
      } 
      if(data==true){ 
       $.ajax({ 
        type:'POST', 
        url:url, 
        data:'id='+id, 
        beforeSend: function() { 
//      $('.loading').show(); 
        }, 
        success:function(result){ 
         if(current==total){ 
//       console.log("END"); 
          $('.loading').fadeOut("slow"); 
          checked=[]; 
          table.draw(); 
         } 
        } 
       }); 
      }else{ 
       window.location.href="<?php echo site_url('/');?>"; 
      } 
     } 
    }); 
} 
+0

でなければなりません。ローディング画面はどこに隠していますか?そのコード行に達していますか?そうでない場合は、どうしてですか?ブラウザのデバッガを使用して手順を進めると、動作は期待どおりに異なりますか? – David

+0

ajax機能が完了すると、読み込み画面は表示されません。それは期待される動作です – JianYA

+0

そして、*あなたがデバッグするとき*、どこが失敗するのですか? – David

答えて

0

ありがとうこの問題は、あなたのコード内の要素のインデックスと要素の長さを発見したので、

if(current==total){} 

この条件の違いにより、常にfalselastIndex == length-1ためになります表示されます。この場合、条件は

if(current==total - 1){} 
+0

あなたは私のために働いています。私はそのようなことを見落としたと信じることはできません – JianYA

+0

5分が上がったら正しいとマークします。ありがとうございました! – JianYA

+0

物事についてちょうど新しい視点:-) – MysterX

関連する問題