172 похожих чатов

У меня вот фрагмент html <form method="POST" action="/add"> <input type="checkbox"

name="cb1" id="a">
<input type="checkbox" name="cb1" id="b">
<input type="checkbox" name="cb1" id="c">
</form>

Я могу как-то получить данные без json?

Если да, то как прописать struct для принятия данных с формы?

15 ответов

10 просмотров

Нихрена не понял

p🥥-SSH a Автор вопроса
Dmytro Polunin
Нихрена не понял

Допустим у меня есть селект с multiple <select name="id_cat" multiple id=""> <option value="1"> Кат а </option> <option value="2"> Кат б </option> <option value="3"> Кат в </option> <option value="9"> Кат з </option> </select> Я выбираю тут пункты, отправляю форму, на стороне сервера хочу получить данные из формы, а точнее список option

p🥥 SSH a
Допустим у меня есть селект с multiple <select...

https://docs.rs/actix-web/3.3.2/actix_web/web/struct.Form.html для актикса это

p🥥 SSH a
Допустим у меня есть селект с multiple <select...

по идее ты всегда можешь достать payload из post запроса и через serde распаковать его в свою структуру. даже если актикс не умеет в нужный тебе формат данных.

p🥥 SSH a
Допустим у меня есть селект с multiple <select...

скажи конкретно какой запрос отправляется? А то лень фронт писать. Нажми в браузере кнопку и в F12 выбери copy as CURL на запросе и кинь сюда

p🥥 SSH a
{ "id_cat": [ "2", "9" ] }

struct Payload { pub id_cat: Vec<String> } ... pub async fn foo( body: web::Json<Payload>, ) -> HttpResponse { ... }

p🥥-SSH a Автор вопроса
Αλεχ Zhukovsky
struct Payload { pub id_cat: Vec<String> } ......

Ага. Вот так делал, а он выдаёт ошибку "Parse error" при попытке отправить запрос

p🥥 SSH a
Ага. Вот так делал, а он выдаёт ошибку "Parse erro...

покажи в браузере какой запрос уходит. Потому что жсон как ты скинул он распарсит

p🥥-SSH a Автор вопроса
Αλεχ Zhukovsky
скажи конкретно какой запрос отправляется? А то ле...

--data-raw "text="%"D0"%"A5"%"D1"%"8D"%"D0"%"BB"%"D0"%"BB"%"D0"%"BE"%"D1"%"83&id_cat=2&id_cat=9"

p🥥 SSH a
--data-raw "text="%"D0"%"A5"%"D1"%"8D"%"D0"%"BB"%"...

Ну тут нет жсона, передаётся через квери стринг

p🥥 SSH a
Допустим у меня есть селект с multiple <select...

короче, я потратил пару часов уже на этот вопрос) Ответ - нет стандарта для передачи массивов form data. Стандарт говорит только о передачи пар ключ-значение: https://www.w3.org/TR/2003/REC-xforms-20031014/slice11.html (см. 11.6 Serialization as application/x-www-form-urlencoded ) Позиция акткикса в том, что они соблюдают стандарт, если там чего-то не описано, то они реализовывать в самом фреймворке не будут. Но можно сделать это кастомно в стороннем крейте: тот же serde_qs имеет фичу актикса для парсинга из квери стринги. Если тебя это устроит (вместо тела) то ок. Но я бы на твоем месте делал XHR и не парил мозг)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта