Node.js/ejs: опубликовать запросы на цели всех элементов списка вместо одного щелчкаJavascript

Форум по Javascript
Ответить
Anonymous
 Node.js/ejs: опубликовать запросы на цели всех элементов списка вместо одного щелчка

Сообщение Anonymous »

Я использую node.js с EJS для отображения списка продуктов. У каждого продукта есть форма с кнопкой, чтобы добавить ее в список желаний. Формы генерируются в цикле, и атрибут действия каждой формы правильно устанавливается в chaddtowishlist/:id.
Моя проблема заключается в том, что когда я нажимаю кнопку «Добавить в список желаний» на одном продукте, код на стороне сервера, кажется, получает запрос, который влияет на несколько продуктов вместо того, что я нажимал. Я подтвердил, что цикл EJS правильно отображает отдельную форму для каждого элемента.[*]





< /code>
node.js (Express) Маршрут: < /p>
app.post("/addToWishlist/:id", async (req, res) => {
const productId = parseInt(req.params.id, 10);
try {
// Check if the item already exists in the wishlist
const checkQuery = "SELECT * FROM wishlist WHERE product_id = $1 AND user_id = $2";
const existingItem = await db.query(checkQuery, [productId, req.user.id]);

if (existingItem.rowCount === 0) {
// Only insert if the item is not already in the wishlist
const insertQuery = "INSERT INTO wishlist (product_id, product_name, user_id) VALUES ($1, $2, $3)";
await db.query(insertQuery, [productId, 'Product Name', req.user.id]); // Note: Use product.name instead of productId
res.redirect('/success');
} else {
res.redirect('/already-in-wishlist');
}
} catch (err) {
console.error(err);
res.status(500).send("An error occurred.");
}
});
< /code>
Мой код на стороне сервера правильно получает идентификатор продукта в req.params.id. Что может вызвать это неожиданное поведение, когда нажатие на одну кнопку, кажется, запускает действие для нескольких элементов? Есть ли общая фронтальная проблема, которая может вызвать это с формами, генерируемыми в цикле? Я не использую какого -либо пользовательского JavaScript для обработки подчинения формы.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ne-clicked
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»