我正在制作一个比萨网站,并且正在处理订单状态。 订单有效,但是如果我在输入位置键入电子邮件,则不会显示我的状态。
HTML:
<form method="POST">
<p>Emailadres <input type="email" name="statuscheck"></p>
<input type="submit" value="Verzend">
</form>
{{ . }}
处理程序:
func statusHandler(writer http.ResponseWriter, request *http.Request) {
log.Println("Viewing status")
// maak een html template object aan
statuschecktemplate, _ := template.ParseFiles("./templates/status.htm")
PizzaBestellingen, _ := LoadBestellingenFromMap()
var data string
for _, value := range PizzaBestellingen {
for _, value := range value {
if value.Email == request.FormValue("statuscheck") {
data = value.Status
}
}
}
fmt.Println(data)
// genereer de html met de lijst van pizzas
// deze worden automatisch teruggestuurd naar de browser
statuschecktemplate.Execute(writer, data)
}
答案 0 :(得分:0)
看看它的定义
func LoadBestellingenFromMap() (map[string][]Klant, error) {
LoadBestellingenFromMap
将map
返回到slice
个 Klant
中,而不仅仅是一个。
您可以尝试以下方法:
for _, values := range PizzaBestellingen {
for _, value := range Values {
if value.Email == request.FormValue("statuscheck") {
data = value.Status
}
}
}
您可能还必须重新考虑算法的逻辑(您可能会获得多个这样的Email
),但是事实已经如此,因为您已经在{{1} }。请记住,如果可能会匹配多个这样的电子邮件。