【问题标题】:html radio button add to databasehtml单选按钮添加到数据库
【发布时间】:2012-04-12 15:42:36
【问题描述】:

我有一个 html 单选按钮。当用户单击提交按钮时,我希望将值添加到数据库表中。

有 4 个单选按钮

o  a
o  b
o  c
o  d

--- 我使用了 request.getParameter() 并引用了 q1。但是当我检查数据库表中的内容时,添加了“null”。 如何在数据库中添加值?

这是我的 html 单选按钮。

<FORM ACTION="Question2.jsp">
Q1. This is the section of code that gracefully responds to exceptions.<P>
    <INPUT TYPE=RADIO NAME="q1" VALUE="a"/>a. Exception generator<BR>
    <INPUT TYPE=RADIO NAME="q1" VALUE="b"/>b. Exception manipulator<BR>
    <INPUT TYPE=RADIO NAME="q1" VALUE="c"/>c. Exception handler<BR>
    <INPUT TYPE=RADIO NAME="q1" VALUE="d"/>d. Exception monitor<P>
    <INPUT TYPE=SUBMIT VALUE="submit"/>
</FORM>

...这里我试图在表中添加值。

<%
String query = "INSERT INTO Quiz2 VALUES (?)";
PreparedStatement pst = (PreparedStatement) conn.prepareStatement(query);
String answer = request.getParameter("q1");
pst.setString(1, answer);
pst.executeUpdate();
%>

【问题讨论】:

    标签: java mysql html radio-button


    【解决方案1】:

    如果这两个(表单和jsp代码)都在同一个文件(Question2.jsp)中,那么当你第一次调用它时,它会给你NULL值。将表单和两个不同文件中的代码分开为form.htmlQuestion2.jsp,这可能会阻止您获取NULL 值。

    【讨论】:

      【解决方案2】:

      &lt;form&gt; 标签中添加method="post"

      <FORM ACTION="Question2.jsp" method="post">
      

      并在更新到数据库后关闭连接对象。

      conn.close();
      

      【讨论】:

        【解决方案3】:

        您是否尝试过多次执行此操作?

        我假设您在“Question2.jsp”中拥有完整的代码,并且当第一次执行JSP 时。它得到NULL 值。

        另外,不需要在(PreparedStatement) 中进行转换,因为Connection 只返回PreparedStatement 的对象。

        【讨论】:

          【解决方案4】:

          我想通了,

          只做类似的事情

          将您的 1 个 html 页面放在一个页面中,将 Question2.jsp 放在另一个页面中

          在 question2.jsp 之后放置这样的代码

          <%@page import="java.sql.*" %>
          
          
          <%
          Connection conn=null;
          Statement stmt=null;
          ResultSet rs=null;
          
          String a=request.getParameter("q1");
          System.out.println("Q1-->"+a);
          Class.forName("com.mysql.jdbc.Driver");
          conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/your database","your database username ","password");
          System.out.println("connected");
          
          stmt=conn.createStatement();
          stmt.execute("insert into first(username) values('"+a+"')");
          
          %>
          

          在您的数据库中放置 id (int) name(varchar(150)) 之后,您的输入将很好地插入

          k.

          【讨论】:

            【解决方案5】:

            检查answer 变量是否正确获取了值。

            【讨论】:

            • System.out.print(answer);但是因为它是一个jsp,所以什么都没有显示出来。
            • System.out.print(answer); 会将值写入服务器控制台。您可以在 jsp scriptlet 中使用 out.print(answer); 进行打印。或${param.q1}${param[q1]}(外部scriptlet)或&lt;%=request.getParameter("q1")%&gt;
            【解决方案6】:

            你准备好了你的声明,但你还没有执行它。

            【讨论】:

              猜你喜欢
              • 2013-02-23
              • 2017-09-27
              • 2016-12-24
              • 2022-11-17
              • 1970-01-01
              • 2019-02-24
              • 1970-01-01
              • 2020-08-02
              • 2022-12-01
              相关资源
              最近更新 更多