Вызов функции jquery ajax для обновления строки в таблице не происходит, пока не будет выполнено обновление. вызов сценария php на сервере из javascript выполняется отлично, но изменения не отражаются на предназначенной странице. . . Как это можно решить?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Одно из двух:
Я бы порекомендовал второй вариант, чтобы все было кратко.
РЕДАКТИРОВАТЬ
Извиняюсь за несоответствия, я не практикуюсь в jQuery, однако суть та же
var populateTable = function(tableData){
//whatever you do to populate your table
}
$(document).ready(function(){
$.get("www.your.site.com/getData", function(data){
populateTable(data);
})
})
const submitEdits = function(){
$.ajax({
method: "POST", //Or whichever method you use
url: "www.your.site.com/sendData",
data: <your data here>
})
.done(function( response ) {
populateTable(response.data);
});
}
Вы можете понять это. . .
Отредактировал свой ответ, чтобы привести пример.
Этот ответ стоит дорого с точки зрения производительности, особенно когда база данных растет.
Вы можете добиться этого за несколько простых шагов:
Самый простой способ - получить все данные. Таким образом, вы можете использовать jQuery.empty (), а затем повторно инициализировать свою таблицу.
Предположим, что после вставки данных с помощью ajax ваши данные успешно сохранены. Получите всю строку из таблицы в том же вызове ajax и сделайте из нее html в том же вызове ajax
$html = '';
foreach($data as $key=>$val){
$html.='<tr>';
$html .= '<td>'.$val['name'].'</td>';
$html .= '<td>'.$val['email'].'</td>';
$html .='</tr>';
}//as per your response come.
а затем в успешном ответе ajax независимо от того, какой html вы вернули в ответ Такие как
return json_encode(array('message'=>'success','table_html'=>$html));
и в успехе ajax замените html таблицы новым html. Такие как
$('#table').html(response.table_html);
если у вас есть основание для тела в таблице, которую вы сделали, замените только тело таблицы, присвоив ей идентификатор.
При попытке доступа к response.table_html возвращается сообщение undefined.
Прежде всего, вам нужно сначала консортировать ваш первый тест ответа ajax, чтобы ваш ответ ajax содержал table_html или нет, после его получения вы можете пойти дальше.
Может, стоит прочитать stackoverflow.com/help/formatting :)
Когда вы закончите редактирование через свой ajax, попросите его обновить поля локально обновленными данными.