2017-02-19 2 views
0

I'am пытается сделать вызов АЯКС удалить строку в таблице моя функция работала только в хроме и не работает в IE8, ни FirefoxАЯКС удалять не работать в некоторых браузерах

function delete_row(id) 
{ 
    if(confirm('Confirm to delete this Equipement ?')){ 
$.ajax 
({ 
    type:'post', 
    url:'edit_equipment.php', 
    data:{ 
    delete_row:'delete_row', 
    row_id:id 
    }, 
    success:function(response) { 
    if(response=="success") 
     { 
    var row=document.getElementById("row"+id); 
    row.parentNode.removeChild(row); 
    } 
    } 

}); 
} 
window.location.reload(); 
} 

ответ

1

Вы перезагружая страницу сразу после сообщения браузера start ajax-запрос. Это может помешать отправке запроса или прервать его, если он выполняется. Это также приводит к условию гонки между загрузкой новой страницы и удалением (если она была получена сервером).

Вам не нужно reload, так как вы удаляете строку динамически. Просто удалите

window.location.reload(); 

линия полностью.

Но если вы хотите назвать это так или иначе, потом не называть его только после того, как запрос завершен:

function delete_row(id) { 
    if (confirm('Confirm to delete this Equipement ?')) { 
     $.ajax({ 
      type: 'post', 
      url: 'edit_equipment.php', 
      data: { 
       delete_row: 'delete_row', 
       row_id: id 
      }, 
      success: function(response) { 
       if (response == "success") { 
        var row = document.getElementById("row" + id); 
        row.parentNode.removeChild(row); 
        window.location.reload(); // But again, you probably don't need it 
       } 
      } 

     }); 
    } 
} 
+0

Проблема, что мне нужно, чтобы перезагрузить страницу, чтобы показать обновленную информацию о других compenents –

+0

@ liane: Тогда просто сделайте вторую вещь выше. –

+0

или есть ли способ убедиться, что запрос завершен, а затем перезагрузите !! –

Смежные вопросы