我创建了小型组合 Web 应用程序,它可以使用提供的 URL 显示从其他网站获取的多个值。目前,这个 URL 被硬编码在我的一个函数中,现在我想添加基于文本字段和复选框中的值的动态 URL 创建功能。
这是我的页面的样子:
(defn view-layout [& content]
(html [:body content]))
(defn view-input []
(view-layout
[:h2 "Find"]
[:form {:method "post" :action "/"}
( for [category ["Cat1" "Cat2" "Cat3"]]
[:input {:type "checkbox" :id category } category ] )
[:br]
[:input {:type "text" :id "a" :value "insert manga name"}] [:br]
[:input.action {:type "submit" :value "Find"}]
[:a {:href "/downloads"} "Downloads"]]))
(defn view-output []
(view-layout
[:h2 "default images"]
[:form {:method "post" :action "/"}
(for [name (get-content-from-url (create-url))]
[:label name [:br]]
)]))
(defn create-manga-url
[]
"http://www.mysite.net/search/?tfield=&check=000")
以下是路线:
(defroutes main-routes
(GET "/" []
(view-input))
(GET "/downloads" []
(view-downloads))
(POST "/" []
(view-output) ))
目前,我需要(create-url)
函数帮助(返回一个字符串),我想在其中获取所有字段,对于我的搜索是必需的(一个文本字段和 3 个复选框),并从中解析值,这些值将被输入(连接) URL - 对于复选框,如果选中,则检查部分的值将是 1,而不是 0,否则保持 0(如果选中了两个复选框,则检查 = 100,或 010、011)。如果是文本字段,则 tfield=userinputtext。
编辑我花了很多时间作为 .Net 和 Java 开发人员,而这部分组合对我来说完全是个谜。这就是我想用(create-url)
函数实现的(用 OO 风格编写的伪代码):
(defn create-url [*text_field cbox1 cbox2 cbox3*]
(def url "http://www.mysite.net/search/?")
(def tfield "tfield=")
(def cbox "&check=")
(if (checked? cbox1)
(str cbox "1")
(str cbox "0"))
(if (checked? cbox2)
(str cbox "1")
(str cbox "0"))
(if (checked? cbox3)
(str cbox "1")
(str cbox "0"))
(str tfield (:value text_field))
(str url tbox cbox))
我为这个伪代码的样子道歉,但这是我想学习的部分:如何从表单中获取数据并解析它(在这种情况下,我想将表单字段中的值附加到字符串中)
谁能帮我这个?