Звучит так, как будто форма отправляется рано, потому что ваши входные данные, возможно, запускают метод отправки form
.
Мы можем значительно упростить его, используя button
s, чтобы обернуть наш прирост и уменьшение действия (прикрепите обработчики событий onclick
к этим кнопкам) и используйте один input
для хранения значения для каждого поля формы (ваши обработчики событий будут изменять значения в этих input
с). Вы можете отключить или скрыть эти input
s, чтобы гарантировать, что изменения в данных формы должны проходить через ваши обработчики событий и не могут быть введены непосредственно в элементы input
.
button
, которые попытаются отправить их родительский элемент form
по умолчанию, поэтому вам нужно использовать type="button"
, чтобы предотвратить это.
Затем, когда ваши данные готовы к отправке, укажите один button
или input
с type="submit"
.
Это также может привести к очистке полезной нагрузки, получаемой вами в контексте php, поскольку действие form
будет пытаться свернуть все input
и их значения. Кажется, вас интересует только $price
, поэтому давайте убедимся, что ваша форма только кодирует эти данные.
Пример разметки для каждого из ваших вопросов может выглядеть следующим образом:
<input id="my-input-1" type="number" value="0" disabled>
<button type="button" name="increment-my-input-1">
<img src="/my-plus-button-image.png" />
</button>
<button type="button" name="decrement-my-input-1">
<img src="/my-minus-button-image.png" />
</button>