РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnuPmFmFF 78 of 84 menu
◀ ▶

Поля формы в Nuxt

Реальная форма редко состоит из одного поля. Контакты, регистрация, заказ - всё это набор именованных значений, которые удобно сложить в один объект и отправить одним запросом.

На сервере обработчик по-прежнему читает тело через readBody и достаёт нужные свойства. Клиент в body у $fetch передаёт столько полей, сколько собрал в форме.

Добавим в API приём имени и email контакта:

export default defineEventHandler(async (event) => { const body = await readBody(event); return { name: body.name, email: body.email, }; });

На странице заведём две переменные и привяжем их к полям ввода. В обработчике отправки передадим оба значения в body:

<script setup> const name = ref(''); const email = ref(''); async function submitForm() { await $fetch('/api/contacts', { method: 'POST', body: { name: name.value, email: email.value, }, }); } </script> <template> <form @submit.prevent="submitForm"> <input v-model="name" type="text"> <input v-model="email" type="email"> <button type="submit"> Save </button> </form> </template>

Имена ключей в объекте body должны совпадать с тем, что ожидает обработчик на сервере. Так проще читать код и отлаживать запросы.

Сделайте форму отдела с полями названия и города, отправляющую оба значения на API одним POST-запросом.

Сделайте обработчик API, который возвращает переданные название отдела и город.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить