⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inst_submit_test.asp

📁 A java project in e-bussiness module.
💻 ASP
字号:
<html>
<head>
<% help_location = "teacher_submit_test" %>
<!-- Author: Brad Pierce -->
<title>Teacher Create Test</title>
<link href="../instructor/inst_basics.css" rel="stylesheet" type="text/css">

<table border='0'><tr><td><img src="../images/netest.png"></td><td width='5%'></td><td width='100%'><br><h2>Create Test</h2></td></tr>
<!-- #include file="../inst_navbar/teacher_navbar_print.inc" -->

<%
   If not Session("inst_authenticated") Then
      Response.Redirect("inst_login.asp")
   End If
   
   IF Session("submitted") = TRUE THEN
	  response.write "<td valign='top'><br>"
      Response.Write "<p><div id=warning><img src='../images/warning.gif'>&nbspYou cannot resubmit the test.</div><br>"
	  Response.Write "<a href='inst_choose_test_modifications.asp'>Click here to add, delete, or update questions.</a><br>"
	  Response.Write "<a href='inst_home.asp'>Click here to return to the home page.</a></p>"
%>
      </table><br><br><table width='86%' align='right' border='0'><tr><td>
      <hr size='2' color='#000000'>
      <font size='1'>Powered by Netest</font>
      </td></tr></table>
<%
      Response.End
   END IF
%>
</head>

<td valign='top'><br>
<%
   dim oConn                ' Connection Object
   dim oRS                  ' Record Set Object
   dim question_counter     ' counter to loop through each question type
   dim choices_counter      ' choice counter for questions with multiple choices
   dim choices              ' contains all multiple choice possible answers
   dim error_message        ' contains the error message for the question
   dim return_previous      ' flag to indicate if the database can be updated or not
 
'----------------------------------------------------------------------------------------------
'ERROR CHECK BEFORE SUBMITTING TO DATABASE
'----------------------------------------------------------------------------------------------   
   question_counter = 1 
   return_previous = FALSE
   
   ' error check multiple choice
   FOR question_counter=1 to session("num_multiple_choice")
      IF trim(request("mc_question_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " QUESTION cannot be blank"
	     call DisplayError()
      END IF
	  
	  FOR choices_counter=1 to session("num_mc_choices")
	     choices = choices & trim(request("mc_choice_" & question_counter & chr(64 + choices_counter)))
      NEXT

	  IF choices = "" THEN
	     error_message = "Question #" & question_counter & " must have at least one CHOICE"
	     call DisplayError()
      END IF
   NEXT		    
   
   ' error check true/false
   FOR question_counter=question_counter to (question_counter + session("num_true_false") - 1)
      IF trim(request("tf_question_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " QUESTION cannot be blank"
	     call DisplayError()
	  END IF
   NEXT	  

   ' error check modified true/false
   FOR question_counter=question_counter to (question_counter + session("num_m_true_false") - 1)
      IF trim(request("mtf_question_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " QUESTION cannot be blank"
	     call DisplayError()
      END IF
	  
	  IF trim(request("mtf_keyword_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " KEYWORD cannot be blank"
	     call DisplayError()
      END IF
	  
	  IF request("mtf_answer_" & question_counter) = "FALSE" AND trim(request("mtf_correction_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " CORRECTION cannot be blank if the ANSWER is FALSE"
	     call DisplayError()
	  END IF
	  
	  IF request("mtf_answer_" & question_counter) = "TRUE" AND trim(request("mtf_correction_" & question_counter)) <> "" THEN
	     error_message = "Question #" & question_counter & " CORRECTION must be blank if the ANSWER is TRUE"
		 call DisplayError()
      END IF
   NEXT   
   
   ' error check matching
   FOR question_counter=question_counter to (question_counter + session("num_matching") - 1)
	  IF trim(request("match_list_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " LIST cannot be blank"
	     call DisplayError()
      END IF
	  
	  IF trim(request("match_jumbled_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " JUMBLED cannot be blank"
	     call DisplayError()
      END IF
   NEXT
   
   ' error check completion
   FOR question_counter=question_counter to (question_counter + session("num_completion") - 1)
      IF trim(request("comp_question_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " STATEMENT cannot be blank"
	     call DisplayError()
      END IF
	  
	  IF trim(request("comp_answer_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " COMPLETION cannot be blank"
	     call DisplayError()
      END IF
   NEXT
   
   ' error check short answer
   FOR question_counter=question_counter to (question_counter + session("num_short_answer") - 1)
      IF trim(request("sa_question_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " QUESTION cannot be blank"
	     call DisplayError()
      END IF
	  
	  IF trim(request("sa_answer_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " ANSWER/KEYWORDS cannot be blank"
	     call DisplayError()
      END IF
   NEXT
   
   ' error check essay
   FOR question_counter=question_counter to (question_counter + session("num_essay") - 1)
      IF trim(request("essay_question_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " QUESTION cannot be blank"
	     call DisplayError()
      END IF
	  
	  IF trim(request("essay_answer_" & question_counter)) = "" THEN
	     error_message = "Question #" & question_counter & " ANSWER/KEYWORDS cannot be blank"
	     call DisplayError()
      END IF
   NEXT
   
sub DisplayError()
   Response.Write "<div id=warning><img src='../images/warning.gif'>&nbsp" & error_message & "</div>"
   return_previous = TRUE
end sub

'----------------------------------------------------------------------------------------------
'IF NO ERRORS, SUBMIT TO DATABASE
'----------------------------------------------------------------------------------------------
IF return_previous = FALSE THEN
   Set oConn=Server.CreateObject("ADODB.connection")
   set oRS=Server.CreateObject("ADODB.recordset")
   oConn.Open "DSN=sd2db; UserID=Admin; pwd=netest"
   
   ' create new test code		  
   sqltext = "SELECT * FROM Test"
   oRS.Open sqltext, oConn, 2, 2
   IF oRS.EOF THEN
	  session("selected_test") = 1
   ELSE
      oRS.movelast
      session("selected_test") = oRS("Test_Code") + 1
   END IF
   
   IF request("test_instructions") = "" THEN
      test_instructions = "none"
   ELSE
      test_instructions = request("test_instructions")
   END IF
   
   ' Populate test table
   oRS.AddNew
   oRS.Fields("Test_Code") = session("selected_test")
   oRS.Fields("Test_Name") = session("test_name")
   oRS.Fields("Test_Instructions") = test_instructions
   oRS.Fields("Course_Code") = session("course")
   oRS.Fields("Section_Code") = session("section")
   oRS.Update
   oRS.Close
   
   ' Populate question table
   sqltext = "SELECT * FROM Question"
   oRS.Open sqltext, oConn, 2, 2
   question_counter=1
   
   ' Populate question table with multiple choice
   FOR question_counter=1 to session("num_multiple_choice")
      choices=""
	  
	  FOR choices_counter=1 to session("num_mc_choices")
	     IF trim(request("mc_choice_" & question_counter & chr(64 + choices_counter))) <> "" THEN
	        choices = choices & "|" & trim(request("mc_choice_" & question_counter & chr(64 + choices_counter)))
         END IF
	  NEXT
	
      oRS.AddNew
	  oRS.Fields("Test_Code") = session("selected_test")
	  oRS.Fields("Question_Number") = question_counter
	  oRS.Fields("Question_Type_Code") = "MC"
      oRS.Fields("Question_Ask") = trim(request("mc_question_" & question_counter)) & choices
	  oRS.Fields("Question_Answer") = request("mc_answer_" & question_counter)
	  oRS.Update
   NEXT
   
  ' Populate question table with true/false
   FOR question_counter=question_counter to (question_counter + session("num_true_false") - 1)
      oRS.AddNew
      oRS.Fields("Test_Code") = session("selected_test")
	  oRS.Fields("Question_Number") = question_counter
	  oRS.Fields("Question_Type_Code") = "TF"
	  oRS.Fields("Question_Ask") = trim(request("tf_question_" & question_counter))
	  oRS.Fields("Question_Answer") = request("tf_answer_" & question_counter)
	  oRS.Update
   NEXT
   
   ' Populate question table with modified true/false
   FOR question_counter=question_counter to (question_counter + session("num_m_true_false") - 1)
      oRS.AddNew
	  oRS.Fields("Test_Code") = session("selected_test")
	  oRS.Fields("Question_Number") = question_counter
	  oRS.Fields("Question_Type_Code") = "MTF"   
	  oRS.Fields("Question_Ask") = trim(request("mtf_question_" & question_counter)) & "|" & _
	                               trim(request("mtf_keyword_" & question_counter))
	  
	  IF request("mtf_answer_" & question_counter) = "TRUE" THEN
	     oRS.Fields("Question_Answer") = request("mtf_answer_" & question_counter)
      ELSE
	     oRS.Fields("Question_Answer") = request("mtf_answer_" & question_counter) & "|" & _
		                                 trim(request("mtf_correction_" & question_counter))
	  END IF
	  oRS.Update
   NEXT
   
   ' Populate question table with matching
   FOR question_counter=question_counter to (question_counter + session("num_matching") - 1)
      oRS.AddNew
	  oRS.Fields("Test_Code") = session("selected_test")
	  oRS.Fields("Question_Number") = question_counter
      oRS.Fields("Question_Type_Code") = "MATCH"
	  oRS.Fields("Question_Ask") = trim(request("match_list_" & question_counter)) & "|" & _
	                               trim(request("match_jumbled_" & question_counter))
	  oRS.Fields("Question_Answer") = request("match_answer_" & question_counter)
	  oRS.Update
   NEXT
   
   ' Populate question table with completion
   FOR question_counter=question_counter to (question_counter + session("num_completion") - 1)
      oRS.AddNew
	  oRS.Fields("Test_Code") = session("selected_test")
	  oRS.Fields("Question_Number") = question_counter
      oRS.Fields("Question_Type_Code") = "COMP"
	  oRS.Fields("Question_Ask") = trim(request("comp_question_" & question_counter))
	  oRS.Fields("Question_Answer") = trim(request("comp_answer_" & question_counter))
	  oRS.Update
   NEXT
   
   ' Populate question table with short answer
   FOR question_counter=question_counter to (question_counter + session("num_short_answer") - 1)
      oRS.AddNew
	  oRS.Fields("Test_Code") = session("selected_test")
	  oRS.Fields("Question_Number") = question_counter
      oRS.Fields("Question_Type_Code") = "SA"
	  oRS.Fields("Question_Ask") = trim(request("sa_question_" & question_counter))
	  oRS.Fields("Question_Answer") = trim(request("sa_answer_" & question_counter))
	  oRS.Update
   NEXT
   
   ' Populate question table with essay
   FOR question_counter=question_counter to (question_counter + session("num_essay") - 1)
      oRS.AddNew
	  oRS.Fields("Test_Code") = session("selected_test")
	  oRS.Fields("Question_Number") = question_counter
      oRS.Fields("Question_Type_Code") = "ESSAY"
	  oRS.Fields("Question_Ask") = trim(request("essay_question_" & question_counter))
	  oRS.Fields("Question_Answer") = trim(request("essay_answer_" & question_counter))
	  oRS.Update
   NEXT
   
   oRS.Close
   
   Session("submitted") = TRUE
   session("print_header") = TRUE
   session("multi_visit") = FALSE
'--------------------------------
'VERIFY THAT TEST IS OKAY
'--------------------------------
%>

   <!-- #include file="inst_view_test.asp" -->
<% 
   if question_counter > 1 then
      response.write "</table>"
   end if
%>
   <br><hr><br>
   <table border='0'><tr><td><img src="../images/question.gif"></td><td><font color='#003333'><b>Finished?</b></font></td><td><a href='inst_home.asp'>Return to teacher home page.</a></td></tr>
   <tr><td><img src="../images/question.gif"></td><td><font color='#003333'><b>Test contains errors?</b></font></td><td><a href="inst_choose_test_modifications.asp">Add, Edit, or Delete Questions</a></td></tr></table>
<%   
ELSE
   Response.Write "<br><div id=warning><u>Your test contained errors.  "
   Response.Write "Hit the back button on your browser to make corrections.</u></div>"
END IF
%>
</td></tr>

<tr><td></td><td colspan='2'><br><br><hr size='2' color='#000000'>
<font size='1'>Powered by Netest</font>
</td></tr></table>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -