Оправка строки на сервер с формы HTML

192
09 мая 2019, 09:20

Есть строки, которые выводятся циклом на страницу. Мне необходимо при нажатии на кнопку отправить данные товара на сервер, который занесет этот заказ в таблицу.

Кнопку при помощи form сделал, id пользователя определяется по сессии.

Но id товара, цена не передается. Чем заменить input?

Надо убрать этот ввод....

<c:forEach var="parts" items="${parts}" varStatus="status">
    <li class="product-wrapper">
        <div class="product-item">
            <img src="${parts.img}"/>
            <div class="product-list">
                <h3>${parts.name}</h3>
                <form action="frontController?command=createord" method="post">
                    <input class="id" name="${parts.id}">
                    <input class="price" name="${parts.price}" value="${parts.price}">
                    <input type="number"
                           min="0"
                           max="10"
                           step="1"
                           value="1" name="quantity" id="quantity">
                    <input type="submit" values="
    <p><ftm:message bundle="${i18n}" key="ord.create"/>"></p>
                </form>
            </div>
        </div>
    </li>
</c:forEach>

Код контроллера:

public class CreateOrdConroller implements Controller {
private OrdService ordService = OrdServiceIpl.getInstance();
@Override
public void execute(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
    User user = (User) req.getSession().getAttribute("user");
    long userId = user.getId();
    String id = req.getParameter("id");
    Long parts_id = Long.parseLong(id);
    String parts_price = req.getParameter("price");
    Double price = Double.parseDouble(parts_price);
    String quantity_parts = req.getParameter("quantity");
    int quantity = Integer.parseInt(quantity_parts);
    ordService.createOrder(userId,parts_id,quantity);
}

}

Answer 1

Чтобы убрать ввод, надо заменить input элементы на другие, которые не видны для пользователя.

<input type="hidden" class="id" name="id" value="${parts.id}">
<input type="hidden" class="price" name="price" value="${parts.price}">

Невидимые поля будут передаваться в контроллер, и могут быть получены как параметры запроса.

Answer 2

Контролируйте цену на сервере, создайте таблицу с ценами к товарам и передавайте в реквесте только количество

READ ALSO
userscript для игры

userscript для игры

пишу юзерскрипт для игры

341
Непонятное поведение localStorage

Непонятное поведение localStorage

Пытаюсь сделать кеширование в localStorage, но что-то странное с ним происходитПо идее должен удалять все элементы кроме cacheBbbbbb cacheFfffff, но не удаляет...

178