2012-03-29 10 views
0

私はhtmlラジオボタンを持っています。ユーザーが送信ボタンをクリックすると、その値をデータベーステーブルに追加します。htmlラジオボタンデータベースに追加

4つのラジオボタンは、私はrequest.getParameter()を使用していると私はQ1を引用している---

o a 
o b 
o c 
o d 

があります。しかし、データベーステーブルに何が入っているかをチェックすると、「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(); 
%> 

答えて

0

method="post"<form>タグに追加します。

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

データベースに更新した後、接続オブジェクトを閉じます。

conn.close(); 
0

変数answerに値が正しく設定されていることを確認します。

+0

System.out.print(answer);しかし、それは何も表示されないjspです。 –

+0

'System.out.print(answer);'はサーバコンソールに値を書き出します。 jspスクリプトレットで 'out.print(answer);'で印刷することができます。 '$ {param.q1}'や '$ {param [q1]}'(スクリプトレット外)、 '<%= request。getParameter( "q1")%> ' – tusar

0

あなたの声明を準備しましたが、実行していません。

+0

はこのコードを追加していません。 –

0

これを複数回実行しましたか?

最初にJSPが実行されると、コード全体が "Question2.jsp"であると仮定しています。それはNULL値を取得します。

さらに、(PreparedStatement)にキャストする必要はありません。ConnectionPreparedStatementのオブジェクトのみを返します。

1

この(フォームおよびJSPコード)の両方が同じファイル(Question2.jsp)にある場合は、次にあなたが初めてそれを呼び出すとき、それはあなたのNULL値が得られます。フォームとコードを別のファイル(form.htmlQuestion2.jsp)で区切ると、NULLという値が得られない可能性があります。

0

私は

がちょうどquestion2.jspの場所で、その後別のページに1ページとQuestion2.jspでコードを

場所のようなもの、あなたの1つのHTMLページを行い、それを考え出しましたこの後、この

<%@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型)名(VARCHAR(150))で、あなたの入力がうまく

を挿入します

k。

関連する問題