@Vovan1995

Почему не работает обновление сущности в базе данных при переносе строк в таблице?

Есть таблица с данными, после переноса строки при помощи скрипта sortable , прохожусь по всем строкам и беру айдишник с первого столбца, потом передаю в функцию айдишник и номер столбца для обновления базы данных через рест и аякс.
Этот код не работает, почему и как можно улучшить?
$(function () {
    $("#vk-request-body").sortable({
        connectWith: ".connectedSortable",
        stop: function () {
            var table = document.getElementById("vk-request-table");
            for (var i = 1, row; row = table.rows[i]; i++) {
                var id = row.cells[0].textContent;
                updateVkRequestAfterSort(id, i);
            }
        }
    }).disableSelection();

});

function updateVkRequestAfterSort(id, rowNumber) {
    var url = "/vk/request/update/" + id;
    var mass = {
        numberVkField: rowNumber
    };
    var emp = JSON.stringify(mass);
    $.ajax({
        url: url,
        data: emp,
        contentType: "application/json",
        type: 'POST',
        dataType: 'JSON',
        success: function (returnObj) {
        },
        error: function (error) {
            console.log(error);
        }
    });
}
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ответы на вопрос 1
YumeReaver
@YumeReaver
Бургомистр
У вас ошибка в цикле for:
for (var i = 1, row; row = table.rows[i]; i++) {
                var id = row.cells[0].textContent;
                updateVkRequestAfterSort(id, i);
            }

for (начало; условие; шаг) {
  // ... тело цикла ...
}

Условие задано неверно. Оператор сравнения (==) или (===). Да и в логике ошибка. Наверное должно быть так: i < table.rows.lenght
Вообще, советую проходиться по всем элементам списка и вытаскивать их позицию из ui.item.index(), а не наоборот. Исключение - если позиция более важна чем элемент списка.
Вот тут небольшой пример по определению позиции - codepen.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект