猿问

我想获取数据会话和标题,但从数据库检索数据时它位于循环之外

我已经从数据库中获取了所有数据,然后数据处于循环状态。除了发生的循环之外,我想插入其他数据,例如会话和标题。然后我把它放入模板中。


我猜测使用struct或slice,但学习后找不到解决方案。


type Sekolah struct {

  Id int

  Nama string

  Alamat string

  Telp string 

}

我有一个像上面这样的结构,然后我创建了句柄函数


http.HandleFunc("/sekolah", func(w http.ResponseWriter, r *http.Request) {


//THIS IS THE DATA I WANT TO SERVE IN TEMPLATE

var title := "Some Title"

var session := "MySession"


    db, errdb := sql.Open("postgres", koneksi)

    if errdb != nil {

        fmt.Println(errdb)

    }


    rows, err := db.Query("SELECT id, nama, alamat, telp FROM public.m_sekolah")

    if err != nil {

        fmt.Println(err)

        http.Error(w, "there was an error", http.StatusInternalServerError)

        return

    }


    var id int

    var nama string

    var alamat string

    var telp string

    var sk []Sekolah


    for rows.Next(){

        err = rows.Scan(&id, &nama, &alamat, &telp)

        if err != nil {

            fmt.Println(err)

            http.Error(w, "There was an error", http.StatusInternalServerError)

            return

        }


        sk = append(sk, Sekolah{Id: id, Nama: nama, Alamat: alamat, Telp: telp})

    }


    err = tmpl.ExecuteTemplate(w, "data_sekolah", sk)

    if err != nil {

        fmt.Println(err)

    }

})

我想将标题和会话数据输入到SK数据中但不参与循环,然后我想将其粘贴到模板中。谁能帮我?


宝慕林4294392
浏览 144回答 1
1回答

开心每一天1111

将所有数据放入地图中并将地图传递给模板。像这样的东西。datamap := make(map[string]interface{})datamap["title"] = <your title>datamap["session"] = <your session>datamap["sk"] = <your sk array>然后,在模板上,访问如下字段。<p>{{.title}}</p><p>{{.session}}</p>{{range .sk}}<p>{{.Nama}}</p>{{end}}笔记。该代码未经测试,但我已经在我之前的项目中解决了您的确切问题。干杯
随时随地看视频慕课网APP

相关分类

Go
我要回答