#html #node.js #express #ejs
Вопрос:
Что я пытаюсь сделать, так это опубликовать данные с того же сайта и создать на нем новый заказ (при нажатии кнопки «Отправить»). У меня нет никакой информации в моем теле, я подозреваю, что в моих ejs что-то пошло не так, любые отзывы очень ценятся.
Мой файл ejs:
<h1>Orders</h1>
<p>Orders from Coffee eShop.</p>
<pre><%#= JSON.stringify(res, null, 4) %></pre>
<form class="label-left" method="post">
<table>
<tr>
<th>Order ID </th>
<th>Customer ID </th>
<th>Name </th>
<th>Date </th>
<th>Product quantity </th>
<th>Status </th>
</tr>
<% for (const row of res) { %>
<tr>
<td><%= row.order_id %></td> <!-- trying to post this -->
<td><%= row.customer_id %></td> <!-- trying to post this -->
<td><%= row.customer_name %></td> <!-- trying to post this -->
<td><%= row.order_date %></td> <!-- trying to post this -->
<td><%= row.produkter_antal %></td><!-- trying to post this -->
<td><%= row.order_status %></td> <!-- trying to post this -->
</tr>
<% }; %>
</table>
<br>
<td><input type="submit" name="doit" value="Create new order"></td> <!-- trying to get this work -->
<br><br>
<a href="/eshop/customer" id="customerlink">Customers</a>
</form>
<br>
<%- include("footer"); %>
и мой файл js:
router.get("/order/:id", async (req, res) => {
let id = req.params.id;
let data = {
title: `Customers order ${id} ${sitename}`,
ordernummer: id
}
data.res = await bank.showCustomerOrder(id);
res.render("eshop/order", data);
});
router.post("/order/:id", urlencodedParser, async (req, res) => {
console.log(req.body);
// this doesnt work... I dont get any info in req.body here
});
Комментарии:
1. Я не уверен, что понимаю; как вы пытаетесь это ОПУБЛИКОВАТЬ? Я вижу a
<form>
без полей ввода.2. Спасибо тебе, вот почему.
Ответ №1:
Только успешные элементы управления формой ( input
, button
, textarea
, select
) будут предоставлять данные для отправки формы.
Единственный элемент управления формой, который у вас есть, — это кнопка «Отправить», но, поскольку у нее нет name
атрибута, она не будет успешной.
Добавьте некоторые элементы управления формой (возможно, вам понадобятся некоторые <input type="hidden" ...>
элементы).
Вы можете найти руководство по формам MDN полезным, а также руководство по использованию форм с помощью Express.
Комментарии:
1. Спасибо за быстрый ответ, я знал, что с моим файлом ejs что-то не так, и это объясняет, почему