From: fomichev Date: Thu, 16 Jan 2025 07:16:08 +0000 (+0300) Subject: Ошибки удаления и редактирования X-Git-Tag: 1.7~57^2~1 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=92b66f88b1ce4d039e17e0d3bd238749a29fd806;p=erp24_rep%2Fyii-erp24%2F.git Ошибки удаления и редактирования --- diff --git a/erp24/controllers/StoresTypeListController.php b/erp24/controllers/StoresTypeListController.php index a695d486..474cfec6 100644 --- a/erp24/controllers/StoresTypeListController.php +++ b/erp24/controllers/StoresTypeListController.php @@ -41,10 +41,10 @@ class StoresTypeListController extends Controller { $model = new StoresTypeList(); $editId = $this->request->post('editId'); - $deleteId = $this->request->post('deleteId'); if ($model->load($this->request->post())) { - if (!empty($editId) && empty($deleteId)) { + if (!empty($editId)) { + // Редактирование $existingModel = StoresTypeList::findOne($editId); if ($existingModel) { $existingModel->type_name = $model->type_name; @@ -53,7 +53,7 @@ class StoresTypeListController extends Controller Yii::$app->session->setFlash('success', 'Запись успешно обновлена.'); return $this->redirect(['index']); } else { - // Yii::$app->session->setFlash('error', 'Ошибка сохранения.'); + Yii::$app->session->setFlash('error', 'Ошибка сохранения.'); } } } else { @@ -62,18 +62,9 @@ class StoresTypeListController extends Controller Yii::$app->session->setFlash('success', 'Новая запись успешно создана.'); return $this->redirect(['index']); } else { - // Yii::$app->session->setFlash('error', 'Ошибка сохранения.'); + Yii::$app->session->setFlash('error', 'Ошибка сохранения.'); } } - - } - - if (!empty($deleteId)) { - $deleteModel = StoresTypeList::findOne($deleteId); - if ($deleteModel && $deleteModel->delete()) { - Yii::$app->session->setFlash('success', 'Запись успешно удалена.'); - return $this->redirect(['index']); - } } $dataProvider = new ActiveDataProvider([ @@ -161,6 +152,10 @@ class StoresTypeListController extends Controller { $this->findModel($id)->delete(); + if (Yii::$app->request->isAjax) { + return $this->asJson(['success' => true, 'message' => 'Запись успешно удалена.']); + } + return $this->redirect(['index']); } diff --git a/erp24/web/js/crud/stores-type-list/index.js b/erp24/web/js/crud/stores-type-list/index.js index 43cbad4b..7e2b2972 100644 --- a/erp24/web/js/crud/stores-type-list/index.js +++ b/erp24/web/js/crud/stores-type-list/index.js @@ -7,6 +7,8 @@ document.addEventListener('DOMContentLoaded', function () { const cancelBtn = document.getElementById('cancel-btn'); const saveBtn = document.getElementById('save-btn'); const editBtn = document.getElementById('edit-btn'); + let typeNameVar = ''; + let idData = ''; list.addEventListener('click', function (event) { const target = event.target; @@ -19,8 +21,9 @@ document.addEventListener('DOMContentLoaded', function () { if (data.error) { alert(data.error); } else { - typeNameField.value = data.type_name; - editIdInput.value = id; + typeNameVar = data.type_name; + idData = id; + editIdInput.value = ''; deleteIdInput.value = ''; document.querySelectorAll('.list-group-item').forEach(item => { @@ -35,27 +38,55 @@ document.addEventListener('DOMContentLoaded', function () { }); editBtn.addEventListener('click', function () { - const id = editIdInput.value; + + + const id = idData; + if (id) { - saveBtn.click(); + editIdInput.value = id; + typeNameField.value = typeNameVar; } else { alert('Выберите запись для редактирования.'); } }); deleteBtn.addEventListener('click', function () { - const id = editIdInput.value; + const id = idData; + if (id && confirm('Вы уверены, что хотите удалить запись?')) { + fetch(`/stores-type-list/delete?id=${id}`, { + method: 'POST', + headers: { + 'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content // CSRF-токен + }, + }) + .then(response => { + if (response.ok) { + alert('Запись успешно удалена.'); + location.reload(); + } else { + alert('Ошибка при удалении записи.'); + } + }) + .catch(error => { + console.error('Ошибка:', error); + alert('Ошибка при удалении записи.'); + }); + editIdInput.value = ''; - deleteIdInput.value = id; - saveBtn.click(); + deleteIdInput.value = ''; + typeNameVar = ''; + idData = ''; } + }); cancelBtn.addEventListener('click', function () { typeNameField.value = ''; editIdInput.value = ''; deleteIdInput.value = ''; + typeNameVar = ''; + idData = ''; deleteBtn.classList.add('d-none'); editBtn.classList.add('d-none'); document.querySelectorAll('.list-group-item').forEach(item => {