Проблема с асинхронным и датируемым запросом - PullRequest
0 голосов
/ 16 октября 2019

Я использую datatable для разбивки на таблицы и поиска. В этой таблице я могу позже редактировать и обновлять данные таблицы я делаю асинхронный запрос. Пока все хорошо, но после выполнения обновления строки таблицы с асинхронным запросом строка покидает таблицу или возвращается с обновленными данными. Но затем, если я выполняю поиск в таблице для поиска или разбивки на страницы с помощью функции данных, строки возвращаются или нет обновленной информации в соответствии с выполненным обновлением и не должны.

Код:

<table class="table table-responsive" id="employee_table1"> 
<thead>  
<tr>
<th>Pedido</th>
<th>Data</th>
<th>Valência</th>
<th>Ação</th>
</tr> 
</thead>
<tbody>     
<?php  do{ ?>
<tr id="<?php echo $produto1["Id"]; ?>">
<td><a class="view_data1" ><?php echo $produto1["Id"]; ?></a></td> 
<td><?php echo $produto1["DataRegisto"]; ?></td> 
<td><?php echo $produto1["Destino"]; ?></td>
<td><button type="button" data-id="<?php echo $produto1["Id"]; ?>"  data-target="#add_data_Modal4" class="btn btn-warning btn-sm edit_data1" ><span class="glyphicon glyphicon-pencil"></span></button></td> 
</tr>     
<?php } while($produto1 = $result1->fetch_assoc()); ?>
</tbody>    
</table>

С помощью кнопки редактирования я вызываю модал для редактирования. В этом режиме у меня есть кнопка для записи обновления:

<button type="button" class="btn btn-success" onclick="inserir_registo1();">Gravar</button>

Затем, чтобы сделать асинхронный запрос, я делаю это в функции insert_register1 ():

function inserir_registo1()
{  

    var dadosajax = {
        'Id' : $("#Id3").val(),
        'DataTermino' : $("#DataTermino1").val(),
        'Tratamento' : $("#Tratamento1").val(),
        'Estado' : $("#Estado3").val()
    };
    $.ajax({
        url: './resolucaomanutencao4',
        type: 'POST',
        cache: false,
        data: dadosajax,
        error: function(){
          $(".error_message").removeClass('hide');
        },
        success: function(result)
        { 
        $("#add_data_Modal4").modal("hide");
        $.ajax({
           url: './atualizarmanutencao4',
           type: 'get',
           dataType: 'json',
           success: function(data){
             var linha = ``; 
             for(let item of data){ 
             linha += `<tr id=${ item.Id }> 
             <td><a class="view_data1">${ item.Id }</a></td>             
             <td>${ item.DataRegisto }</td> 
             <td>${ item.Destino }</td>      
             <td><button type="button" data-id="${ item.Id }"  data-target="#add_data_Modal4" class="btn btn-warning btn-sm edit_data1" ><span class="glyphicon glyphicon-pencil"></span></button></td>
             </tr>`;
              $("#employee_table1 tbody").html(linha);           
             } 

             }

            });
        }       
    });

}

Предполагалось, что послепри обновлении таблицы с помощью асинхронного поиска, который находится в пределах успеха функции insert_register1 (), таблица данных вернет данные, уже обновленные при обновлении.

...