html - 如何在网页上的2个表中使用SQL请求数据
问题描述
我有 Go Web 服务器,它发出 SQL 请求并在 WEB 页面上显示结果。
这是围棋代码:
func PageHandler(w http.ResponseWriter, r *http.Request) {
rows, _ := database.Query("select .......;")
defer rows.Close()
user_current := []User{}
for rows.Next() {
p := User{}
err := rows.Scan(&p.Name1, &p.Name2 )
if err != nil {
fmt.Println(err)
continue
}
user_current = append(user_current, p)
}
tmpl, _ := template.ParseFiles("page.html")
tmpl.Execute(w, user_current)
}
这是我的 HTML 网页:
<table>
<thead><th>name1</th><th>name2</th></thead>
{{range . }}
<tr>
<td>{{.Name1}}</td>
<td>{{.Name2}}</td>
</tr>
{{end}}
</table>
我想要网页中的 2 个或多个表格(表格中的数据不同),但我不知道该怎么做
像这样的东西:
<table1>
<thead><th>name1</th><th>name2</th></thead>
{{range . }}
<tr>
<td>{{.Name1}}</td>
<td>{{.Name2}}</td>
</tr>
{{end}}
</table1>
<table2>
<thead><th>sign1</th><th>sign2</th></thead>
{{range . }}
<tr>
<td>{{.Sign1}}</td>
<td>{{.Sign2}}</td>
</tr>
{{end}}
</table2>
解决方案
func PageHandler(w http.ResponseWriter, r *http.Request) {
var data struct {
Users []User
Animals []Animal
}
// select users
rows, err := database.Query("select ... from user")
if err != nil {
log.Println(err)
return
}
defer rows.Close()
for rows.Next() {
u := User{}
if err := rows.Scan(&u.Field, ...); err != nil {
log.Println(err)
continue
}
data.Users = append(data.Users, p)
}
// select animals
rows, err := database.Query("select ... from animal")
if err != nil {
log.Println(err)
return
}
defer rows.Close()
for rows.Next() {
a := Animal{}
if err := rows.Scan(&a.Field, ...); err != nil {
log.Println(err)
continue
}
data.Animals = append(data.Animals, p)
}
tmpl, err := template.ParseFiles("page.html")
if err != nil {
log.Println(err)
return
}
if err := tmpl.Execute(w, data); err != nil {
log.Println(err)
}
}
模板
<table>
<thead><th>name1</th><th>name2</th></thead>
{{range .Users }}
<tr>
<td>{{.Name1}}</td>
<td>{{.Name2}}</td>
</tr>
{{end}}
</table>
<table>
<thead><th>sign1</th><th>sign2</th></thead>
{{range .Animals }}
<tr>
<td>{{.Sign1}}</td>
<td>{{.Sign2}}</td>
</tr>
{{end}}
</table>
推荐阅读
- python - 使用 mitmproxy 进行条件上游代理(PAC 等效模块/脚本)
- java - SailPoint 身份创建规则
- java - 如何从意图服务调用 BroadcastReceiver?
- python - 在自定义包中创建 pyspark 数据框?
- arrays - 在 C 中的数组的 if 语句的保护中使用空格
- generics - 通用超特征/需要一揽子 impl
- python - 如何使用 Django 编辑 html 页面并将其保存在同一页面中?
- matplotlib - 如何在 matplotlib 中绘制简单的太阳之类的东西?
- electron - 以编程方式检测安装类型
- vbscript - 如何在 VBS 的 WMI 服务查询中使用变量名