Почему мой статус заказа не отображается, когда я набираю свою электронную почту? - PullRequest
0 голосов
/ 08 ноября 2018

Я делаю сайт о пицце и работаю над статусом заказа. Заказ работает, но если я введу свою электронную почту в месте ввода, он не покажет мой статус.

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)

}

1 Ответ

0 голосов
/ 08 ноября 2018

Глядя на его определение,

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), но это уже так, поскольку вы все равно уже перебираете PizzaBestellingen. Имейте это в виду, если возможно, что более одного такого письма будет соответствовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...