Clojure - 打嗝下拉菜单
Clojure - Hiccup Dropdown menu
我在 Hiccup 中有一个从数据库填充的 Clojure table。在一列中,我有从数据库设置的状态。
我想要做的是能够点击这个值,然后出现一个下拉菜单,您可以从下拉菜单中选择一个新的状态。
我不知道该怎么做。我曾尝试使用带有占位符的表单,其中的值来自数据库,但是当我在浏览器中单击状态时,我必须键入而不是下拉列表。我如何获得下拉菜单?
(defn row-data [data]
(for [x data]
(let [[entity-id id date text status] job]
(hiccup/html
[:tr
[:td date]
[:td id]
[:td text]
[:form {:method :post}
[:td
[:input {:type :text :placeholder status}]]]
]))))
如有任何帮助,我们将不胜感激。谢谢
如果我理解你的任务,你不需要使用 [:input]
和 {:type :text}
,如果你不想在字段中输入。
请尝试使用 (drop-down attr-map? name options)
。
https://weavejester.github.io/hiccup/hiccup.form.html
你也可以试着让你的表单看起来像这样:
[:form {:action "/handler_name"}
[:td
[:select {:name (str "update_status_" id)}
[:option {:value "1"} "1"]
[:option {:value "2"} "2"]
[:option {:value "3"} "3"]
[:option {:value "4"} "4"]]
[:input {:type "submit"} "Update"]]]
您需要这样的矢量:
(def countries [["Mexico" 6]["Argentina" 5]
["Chile" 3]["Colombia" 2]])
等等:
(:require
[hiccup.core :as c]
[hiccup.form :as f]
[:div.div-separator (f/drop-down {:class "form-class"} "country_id" countries)]
如果您有包含信息的地图,您可以使用 reduce 函数创建向量:
(let [my-vector (reduce #(conj %1 [(:name %2) (:id %2)]) [] my-big-map)])
我在 Hiccup 中有一个从数据库填充的 Clojure table。在一列中,我有从数据库设置的状态。
我想要做的是能够点击这个值,然后出现一个下拉菜单,您可以从下拉菜单中选择一个新的状态。
我不知道该怎么做。我曾尝试使用带有占位符的表单,其中的值来自数据库,但是当我在浏览器中单击状态时,我必须键入而不是下拉列表。我如何获得下拉菜单?
(defn row-data [data]
(for [x data]
(let [[entity-id id date text status] job]
(hiccup/html
[:tr
[:td date]
[:td id]
[:td text]
[:form {:method :post}
[:td
[:input {:type :text :placeholder status}]]]
]))))
如有任何帮助,我们将不胜感激。谢谢
如果我理解你的任务,你不需要使用 [:input]
和 {:type :text}
,如果你不想在字段中输入。
请尝试使用 (drop-down attr-map? name options)
。
https://weavejester.github.io/hiccup/hiccup.form.html
你也可以试着让你的表单看起来像这样:
[:form {:action "/handler_name"}
[:td
[:select {:name (str "update_status_" id)}
[:option {:value "1"} "1"]
[:option {:value "2"} "2"]
[:option {:value "3"} "3"]
[:option {:value "4"} "4"]]
[:input {:type "submit"} "Update"]]]
您需要这样的矢量:
(def countries [["Mexico" 6]["Argentina" 5]
["Chile" 3]["Colombia" 2]])
等等:
(:require
[hiccup.core :as c]
[hiccup.form :as f]
[:div.div-separator (f/drop-down {:class "form-class"} "country_id" countries)]
如果您有包含信息的地图,您可以使用 reduce 函数创建向量:
(let [my-vector (reduce #(conj %1 [(:name %2) (:id %2)]) [] my-big-map)])