doujia7162 2016-05-01 23:35
浏览 122

更新html页面而不重新加载golang

I am writing my first server in golang. I have a login form that users will fill out and I want to show messages on the page without reloading.

What I have until now:

  1. index.tmpl
<form class="form-horizontal" role="form"  action="/auth/login" method="POST">
  <div class="form-group">
    <div class="col-sm-2">
      <label for="inputEmail" class="control-label">Email</label>
    </div>
    <div class="col-sm-10">
      <input type="email" name="email" class="form-control input-lg" id="inputEmail" placeholder="Email">
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-2">
      <label for="inputPassword" class="control-label">Password</label>
    </div>
    <div class="col-sm-10">
      <input type="password" name="password" class="form-control input-lg" id="inputPassword" placeholder="Password">
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-12">
      <label for="message" class="control-label text-danger">{{ .message }}</label>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-default btn-lg">Sign in</button>
    </div>
  </div>
</form>

Here, I have a placeholder for message where I want to print all my error messages.

  1. server.go
if _, ok := resp.Item["Email"]; ok {
                if *resp.Item["Email"].S == form.Email && *resp.Item["Password"].S == form.Password {
                    var bucketlist []string
                    for _, dataset := range resp.Item["Datasets"].SS {
                        bucketlist = append(bucketlist, *dataset)
                    }
                    log.Info("User password and email match")
                    c.HTML(http.StatusOK, "bucketlist.tmpl", gin.H{
                        "bucketlist": bucketlist,
                    })
                } else {
                    log.Info("Failure authorizing user: Invalid login")
                    c.HTML(http.StatusUnauthorized, "index.tmpl", gin.H{
                        "message": "Invalid login information.",
                    })
                }
            } else {
                log.Info("Failure authorizing user: Invalid login")
                c.HTML(http.StatusUnauthorized, "index.tmpl", gin.H{
                    "message": "Invalid login information.",
                })
            }
        }
    } else {
        log.Info("Failure authorizing user: No input provided")
        c.HTML(http.StatusUnauthorized, "index.tmpl", gin.H{
            "message": "Please fill the form with valid login information.",
        })
    }

Here, I am handling errors and printing to {{ .message }} placeholder in index.tmpl. If I put in a wrong password, I want the webpage to update the placeholder without reloading the whole page. Is there a way to do that? If there is, a point in the right direction would be greatly appreciated.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
    • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
    • ¥60 pb数据库修改与连接
    • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
    • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
    • ¥20 神经网络Sequential name=sequential, built=False
    • ¥16 Qphython 用xlrd读取excel报错
    • ¥15 单片机学习顺序问题!!
    • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
    • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)