Можно ли правильно обновить страницу после того, как товар был перемещен в черновик?

Как исправить код для создания кнопки "Draft product" в административной панели, которая будет изменять страницу товара на статус черновика без вызова ошибки?
Изображение к вопросу
Изображение к вопросу
  • 24 декабря 2023 г. 9:37
Ответы на вопрос 1
Да, можно правильно обновить страницу после перемещения товара в черновик. Для этого вам потребуется использовать AJAX-запросы или WebSocket, чтобы отправить запрос на сервер без перезагрузки страницы и обновить информацию о товаре после перемещения его в черновик.

Вот пример кода для создания кнопки "Draft product" в административной панели:

HTML:
```html
<button id="draft-btn">Draft product</button>
```

JavaScript:
```javascript
document.getElementById('draft-btn').addEventListener('click', function() {
  var productId = 123; // Замените 123 на фактический идентификатор товара

  // Отправить AJAX-запрос на сервер
  var xhr = new XMLHttpRequest();
  xhr.open('POST', '/move-to-draft', true);
  xhr.setRequestHeader('Content-type', 'application/json');
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4 && xhr.status === 200) {
      // Обновить страницу или её часть
      var updatedProduct = JSON.parse(xhr.responseText);
      // Внести изменения на страницу товара, например, изменить его статус на "Черновик"
      document.getElementById('product-status').textContent = 'Draft';
    }
  };
  xhr.send(JSON.stringify({ productId: productId }));
});
```

На серверной стороне (например, с использованием Node.js и Express) вы можете создать маршрут `/move-to-draft` для обработки запроса на перемещение товара в черновик. Вот пример обработчика запроса:

```javascript
app.post('/move-to-draft', function(req, res) {
  var productId = req.body.productId; // Получить идентификатор товара из запроса

  // Выполнить действия для перемещения товара в черновик
  // Например, обновить запись о товаре в базе данных

  var updatedProduct = {
    id: productId,
    status: 'draft'
  };

  res.send(updatedProduct);
});
```

Не забудьте настроить маршрут `/move-to-draft` и обновить код для работы с вашей базой данных и логикой перемещения товара в черновик.
Похожие вопросы