Как вставить / обновить строку таблицы в таблице? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть функция, которая должна вставлять / обновлять записи в таблице. После получения ответа ajax с сервера данные передаются в функции saveData(obj.DATA). Вот пример:

$.ajax({
    type: 'POST',
    url: 'cfc/save.cfc?method=saveData',
    data: frmData,
    dataType: 'json'
}).done(function(obj){
    if(obj.STATUS === 200){
        saveData(obj.DATA);
    }else{
        alert('Error! Please contact administrator.');
    }
}).fail(function(jqXHR, textStatus, errorThrown){
    alert('Error: ' + errorThrown);
});

obj.DATA с сервера выглядит так:

{"DATA":{
   "date":"06/27/2019",
   "comment":"Comment Test",
   "rec_id":23517,
   "title":"Test",
   "user":"MI0983",
   "year":2019
   }
}

Тогда последняя часть - это saveData функция, которая должна заполнить объект JS данными и вставить / обновить строку таблицы. Вот что у меня есть:

    var js Data = {}; // global variable data storage.
    function saveData(data) {
        if(jsData.hasOwnProperty(data.rec_id)) {
             jsData[data.rec_id] = {
                "rec_id": data.rec_id,
                "title": data.title,
                "comment": data.comment
             }

             var tr = $('row_' + data.rec_id);
             tr.empty();                          
        } else {
             jsData[data.rec_id] = {
                 "rec_id": data.rec_id,
                 "title": data.title,
                 "comment": data.comment
             }

             var tr = $('<tr>').prop('id', 'row_' + data.rec_id);
             $('#tbl_my > tbody').prepend(tr);   
        }

        tr.append($('<td>').text(data.title));
        tr.append($('<td>').text(data.user));
        tr.append($('<td>').text(data.date));
        tr.append($('<td>').text(data.year));
        tr.append($('<td>').html('<button class="edit">Edit</button>'));
        tr.append($('<td>').html('<button class="delete">Delete</button>'));
  }

Мне интересно, есть ли лучший способ для вставки / обновления строк таблицы. Как видите, я храню только три поля данных в объекте JavaScript (jsData), так как эти три используются в форме. Только эти поля могут быть обновлены пользователем. Другие поля используются только для отображения. Кроме того, мне интересно, если это хорошая практика, чтобы вернуть вставленные данные с сервера (что я делаю в моем коде выше, как только процесс ajax завершен), или я должен очистить данные из объекта формы? Если у кого-то есть предложения, пожалуйста, дайте мне знать. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...