0

クイズを作成しようとしていますが、クエリは ORDER BY RAND() であるため、ランダムになることを意味します... 私の JSP はそれをサーブレットに送信してフローを処理しますが、問題が発生しています。4 つの質問を保存しましたデータベースと以下のコードで選択肢(回答)を使用して取得します。問題は、受験者の回答を取得するときに、取得したデータが最初の回答だけであることです...私のサーブレットを参照してください

<%@page contentType="text/html" pageEncoding="UTF-8"%>  
<%@page import="java.sql.*" %>  
<%@page import="database.Connect" %>  

<%   
    Connect conn = new Connect();   
    Statement stmt = conn.getDataConn().createStatement();  
    ResultSet rs = stmt.executeQuery("SELECT * from quiz WHERE category = 'secondary' ORDER BY RAND()");  

%>  

<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
        <link rel="stylesheet" type="text/css" href="../../css&js/des.css">  
        <script src="css&js/modernizr.custom.js"></script>  

        <title>Question 1</title>  
    </head>  

    <body>  

        <img alt="" src="../../pics/bgimg2.jpg" id="bgimg" />   

        <div class="md-modal md-effect-1 md-show" id="modal-1">  
            <form action="../../Check" method="POST">  
            <table border="1" class="c-form md-content">  
            <% while(rs.next()){   

            %>  
            <tr>  
                <td><h1><%=rs.getString("question")%>?</h1></td>  
                <td><select name="answer">  
                    <option value="<%=rs.getString("choice1")%>"><%=rs.getString("choice1")%></option>  
                    <option value="<%=rs.getString("choice2")%>"><%=rs.getString("choice2")%></option>  
                    <input type="hidden" name="correct" value="<%=rs.getString("correct")%>"/>  
                </select></td>  
            </tr>  

            <%}  
            %>  

            <tr>  
                <td align="center" colspan="2"><input type="submit" value="Next"/></td>  
            </tr>  

            </table>   

            </form>  
        </div>  



    </body>  

クイズを作成しようとしていますが、クエリは ORDER BY RAND() であるため、ランダムになることを意味します... 私の JSP はそれをサーブレットに送信してフローを処理しますが、問題が発生しています。4 つの質問を保存しましたデータベースと以下のコードで選択肢(回答)を使用して取得します。問題は、受験者の回答を取得するときに、取得したデータが最初の回答だけであることです...私のサーブレットを参照してください

<%@page contentType="text/html" pageEncoding="UTF-8"%>  
<%@page import="java.sql.*" %>  
<%@page import="database.Connect" %>  

<%   
    Connect conn = new Connect();   
    Statement stmt = conn.getDataConn().createStatement();  
    ResultSet rs = stmt.executeQuery("SELECT * from quiz WHERE category = 'secondary' ORDER BY RAND()");  

%>  

<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
        <link rel="stylesheet" type="text/css" href="../../css&js/des.css">  
        <script src="css&js/modernizr.custom.js"></script>  

        <title>Question 1</title>  
    </head>  

    <body>  

        <img alt="" src="../../pics/bgimg2.jpg" id="bgimg" />   

        <div class="md-modal md-effect-1 md-show" id="modal-1">  
            <form action="../../Check" method="POST">  
            <table border="1" class="c-form md-content">  
            <% while(rs.next()){   

            %>  
            <tr>  
                <td><h1><%=rs.getString("question")%>?</h1></td>  
                <td><select name="answer">  
                    <option value="<%=rs.getString("choice1")%>"><%=rs.getString("choice1")%></option>  
                    <option value="<%=rs.getString("choice2")%>"><%=rs.getString("choice2")%></option>  
                    <input type="hidden" name="correct" value="<%=rs.getString("correct")%>"/>  
                </select></td>  
            </tr>  

            <%}  
            %>  

            <tr>  
                <td align="center" colspan="2"><input type="submit" value="Next"/></td>  
            </tr>  

            </table>   

            </form>  
        </div>  



    </body>  

サーブレット...私はここで実験しようとしていますが、私は本当に助けが必要です.最初の答えはolnlyの取得であり、それをインクリメントする必要があるため、forの出力はnullであり、過去のコードも失敗します。助けてください

package Servlet;  

import java.io.IOException;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  

public class Check extends HttpServlet {  

    @Override  
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  

        for(int i=0;i<10;i++) {    
            String Answer = request.getParameter("answer" + i);  
            System.out.println(Answer);  
        }   


        String Answer = request.getParameter("answer");  
        String Correct = request.getParameter("correct");  
        int score = 0;  


        if (Answer.equals(Correct)) {  
            score++;  
        }  
        System.out.println(score);  



    }  
}  
4

1 に答える 1

0

これは、すべての質問に同じ名前のタグを選択したことが原因である可能性があります。

<select name="answer">  

ユニークであるべきだと思う

于 2013-10-01T11:16:26.513 に答える