【问题标题】:How to save and work with data from input type radio如何保存和使用来自输入类型收音机的数据
【发布时间】:2021-02-05 11:28:00
【问题描述】:

我要做一些类似测试的事情,为此我想在创建问题时选择正确的选项。我以 VARCHAR 类型将数据从收音机写入数据库,但我需要确定选择了哪个输入以便将来使用这些数据。 “正确”字段中的数据写为“on”,按哪个输入是不可能找出来的 html:

<form action="/save_test" method="post">
      <input type="text" name="wordOne"><input type="radio" name="correct"><br>
      <input type="text" name="wordTwo"><input type="radio" name="correct"><br>
      <input type="text" name="wordThree"><input type="radio" name="correct"><br>
      <input type="text" name="wordFour"><input type="radio" name="correct"><br>
      <button type="submit" name="button">Send</button>
    </form>

去:

func save_test(w http.ResponseWriter, r *http.Request){
  wordOne := r.FormValue("wordOne")
  wordTwo := r.FormValue("wordTwo")
  wordThree := r.FormValue("wordThree")
  wordFour := r.FormValue("wordFour")
  correct := r.FormValue("correct")

  //connecting
  db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:8889)/educ")
  if err != nil {
    panic(err)
  }
  defer db.Close()
  insert, error := db.Query(fmt.Sprintf("INSERT INTO `words` (`word1`, `word2`, `word3`, `word4`, `correct`) VALUES('%s', '%s', '%s', '%s', '%s')", wordOne, wordTwo, wordThree, wordFour, correct))
  if error != nil {
    panic(error)
  }
  defer insert.Close()

  http.Redirect(w, r, "/", http.StatusSeeOther)

}

【问题讨论】:

    标签: html mysql database go


    【解决方案1】:

    您可以在 html 部分执行此操作

    <form action="/save_test" method="post" id="questions_form">
      <input type="text" name="wordOne">
      <input type="text" name="wordTwo">
      <input type="text" name="wordThree">
      <input type="text" name="wordFour">
      <fieldset>
          <input type="radio" name="radio_answer">
          <input type="radio" name="radio_answer">
          <input type="radio" name="radio_answer">
          <input type="radio" name="radio_answer">
      </fieldset>
      <input type="hidden" name="correct">
      <button type="button" onclick="send()" name="button">Send</button>
    </form>
    <script>
        function send(){
            var form=document.getElementById("questions_form")
            var correct= form[9]
            for(var i=5;i<9;i++){
                if(form[i].checked){
                    correct.value=i-4
                }
            }
            //No answer entered
            if(!correct.value){
                correct.value=0 //Default answer
            }
            form.submit()
        }
    </script>
    

    在 golang 部分

    insert, error := db.Query("INSERT INTO `words` (`word1`, `word2`, `word3`, `word4`, `correct`) VALUES(?, ?, ?, ?, ?)", wordOne, wordTwo, wordThree, wordFour, correct)
    

    替换此部分以防止sql注入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 2013-11-01
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      相关资源
      最近更新 更多