Я использую 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
Node.js/ejs: опубликовать запросы на цели всех элементов списка вместо одного щелчка ⇐ Javascript
Форум по Javascript
1757684394
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 для обработки подчинения формы.
Подробнее здесь: [url]https://stackoverflow.com/questions/79763017/node-js-ejs-post-request-targets-all-list-items-instead-of-the-one-clicked[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия