Я создаю свое самое первое веб-приложение, и мне трудно получить доступ к отдельным полям формы, когда пользователь submit
заполняет форму. Вот что у меня есть:
(defroutes app
(GET "/" [] homepage)
(POST "/city" request display-city)
(route/resources "/")
(route/not-found "Not Found"))
(defn display-city [request]
(html5
[:div {:class "the-city"}
[:h2 "ALL ABOUT YOUR CITY"]
[:ul
[:li "Your city is " (str request) "! That's all"]]]))
;; and here's the hiccup form:
[:form {:action "/city" :method "post"}
(anti-forgery-field)
[:p "Enter your home address"]
[:div
[:label {:for "street-field"} "Street:"]
[:input {:id "street-field"
:type "text"
:name "street"}]]
[:div
[:label {:for "city-field"} "City:"]
[:input {:id "city-field"
:type "text"
:name "city"}]
[:div
[:label {:for "state-field"} "State:"]
[:input {:id "state-field"
:type "text"
:name "state"}]
[:label {:for "zip-field"} "ZIP:"]
[:input {:id "zip-field"
:type "text"
:name "zip"
:size "10"}]]
[:div.button
[:button {:type "submit"} "Submit"]]]])
;; Когда я запускаю приведенный выше код, я вижу всю форму, отправленную через (str request)
, в виде карты Clojure. Но я не могу понять, как извлечь отдельные «ключи / значения» (из этой адресной формы я хотел бы извлечь город) или как сохранить эти результаты таким образом, чтобы я мог их использовать. Есть идеи?
Это супер базовая /city
страница, которую я пытаюсь запустить, чтобы понять, как все работает, прежде чем создавать большие. Спасибо!