【发布时间】:2020-10-30 17:42:21
【问题描述】:
很抱歉提出这个问题。我一直在搜索过去几个小时,但找不到任何帮助。
我想使用 JSP 制作一个简单的测验应用程序。 我创建了 2 个表,如下所示
- Col1:QuizId Col2:测验名称 Col3:问题数
- Col1: QtnNum Col2: Question Col3: Option1 Col4: Option2 Col5: Option3 Col6: Option4 Col7: CorrectOption
页面将如下图所示。
这个页面的代码是
<%@page import="java.sql.*,java.io.*,java.text.*,java.util.* ,javax.servlet.*,javax.servlet.http.*"
%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML>
<HTML>
<head>
<meta charset="ISO-8859-1">
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk"
crossorigin="anonymous">
<link rel="stylesheet" href="bstyle.css" type="text/css">
<title>Insert title here</title>
</head>
<body>
<body>
<%
String quiz_title =request.getParameter("quiz_title");
String no_question =request.getParameter("no_question");
String quiz_id=request.getParameter("quiz_id");
%>
<br><br>
<div class="container">
<div class="row">
<div class="col-6">
<h3><%=quiz_title %></h3>
</div>
<div class="col-6">
<h3>Total no. of questions: <%=no_question %></h3>
</div>
</div>
<br>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/student_portal 2.0","root","");
Statement st=con.createStatement();
String sql="select * from quiz_q_a where quiz_id="+quiz_id;
ResultSet rs=st.executeQuery(sql);
while(rs.next())
{
String question =rs.getString("question");
String option_a =rs.getString("option_a");
String option_b =rs.getString("option_b");
String option_c =rs.getString("option_c");
String option_d =rs.getString("option_d");
String correct_option =rs.getString("correct_option");
String explanation =rs.getString("explanation");
String current_no =rs.getString("q_no");
%>
<div class="row">
<div class="col-6">
<h4><%=current_no%>. <%=question %></h4>
</div>
<div class="col-6">
<h4>               ( )
</h4>
</div>
</div>
<br>
<form>
<div class="row">
<div class="col-6">
<div class="form-check">
<input class="form-check-input" type="radio" name="inlineRadioOptions" value="A">
<label class="form-check-label" for="inlineRadio1">A. <%=option_a %></label>
</div>
</div>
<div class="col-6">
<div class="form-check">
<input class="form-check-input" type="radio" name="inlineRadioOptions" value="B">
<label class="form-check-label" for="inlineRadio1">B. <%=option_b %></label>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-6">
<div class="form-check">
<input class="form-check-input" type="radio" name="inlineRadioOptions" value="C">
<label class="form-check-label" for="inlineRadio1">C. <%=option_c %></label>
</div>
</div>
<div class="col-6">
<div class="form-check">
<input class="form-check-input" type="radio" name="inlineRadioOptions" value="D">
<label class="form-check-label" for="inlineRadio1">D. <%=option_d %></label>
</div>
</div>
</div>
<br>
<hr>
</form>
<%
}
%>
</div>
<br>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-
DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"
integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI"
crossorigin="anonymous"></script>
</body>
</html>
我的要求是在页面末尾添加一个提交按钮。单击提交按钮时,用户响应应存储在数组中。从用户响应数组中选择的答案应与表中的正确答案数组进行比较并计算分数。
请帮助我实现这一目标。我无法捕获用户响应。谢谢。
【问题讨论】:
-
为
form添加action属性以便存储/处理values。这可能会有所帮助w3schools.com/html/html_forms.asp(在您的情况下,接收者将是 jsp/servlet) -
是的,我试过了,但是当我在表单中添加一个按钮时,该按钮会再次重复 5 次,因为一旦有人点击它,我只需要在最后提交,所有 5 个问题的答案都应该通过
-
认为您做错了什么,
form应该汇总所有答案,因此请使用 submit 发送所有答案! (如我所见) -
就像我使用循环一样,我们需要在 javascript 和某个地方存储结果,例如如果我做错了什么,请告诉我并帮助我,谢谢
-
不需要javascript,通过表单将值发送到jsp并从那里处理