Я использую редактирование темы в модале. В ситуации, когда: я нажимаю кнопку включения модального переключателя и закрываю ее без внесения изменений, несколько раз для нескольких элементов - это приводит к тому, что вместо одного элемента, в который я добавил изменения, изменение сохраняется в базе данных для всех ранее отмеченные.
Я думаю, что это может быть решено путем очистки памяти идентификатора данных в href, открывающей модальный
результат
<a href="" data-toggle="modal" data-target="#editSubject" data-id="{{$subject->id}}"
data-name="{{$subject->name}}" data-ects="{{$subject->ects}}"
data-exam="{{$subject->exam}}"
class="btn btn-light btn-sm edit-subject">
<i class="far fa-edit fa-lg"></i>
</a>
var editSubject = () =>
{
$('body').on('click', '.edit-subject', function(){
let el = this;
let id = $(this).data('id');
$("#nameEdit").attr("value", $(this).data('name'));
$("#ectsEdit").attr("value", $(this).data('ects'));
$("#examEdit").attr("value", $(this).data('exam'));
$('#submitEditSubject').click(function(event){
let name = $('#nameEdit').val();
let ects = parseInt($('#ectsEdit').val());
let exam = $('#examEdit').val();
let postData = {
"name": name,
"ects": ects,
"exam": exam,
"_token": $('#token').val()
};
$.ajax({
type: "PATCH",
url: `/subjects/${id}/update`,
data: postData,
success: function(data)
{
closeModal();
$('#validation-info').hide();
$(el).closest('tr').remove();
appendToTable(data);
$('#success-info').show();
$('#info').html(data.success);
}
});
});
});
}