<% check_security(1) %> <% user_id = session("user_id") if user_id = "" then response.redirect "login.asp" %> <% dim survey_id dim question_type dim answer dim answer_id dim answer_type dim default_answer dim question_id dim question dim surveyquestions_gridform_sql sub request_surveyquestions_gridform ''' request form inputs from this form question_type = request("question_type") answer = request("answer") answer_id = request("answer_id") answer_type = request("answer_type") default_answer = request("default_answer") question_id = request("question_id") survey_id = request("survey_id") question = request("question") end sub sub validate_surveyquestions_gridform ''' request and validate data entered from this form question_type = trim(request("question_type")) answer = trim(request("answer")) answer_id = trim(request("answer_id")) answer_type = trim(request("answer_type")) default_answer = trim(request("default_answer")) question_id = trim(request("question_id")) survey_id = trim(request("survey_id")) question = trim(request("question")) end sub sub db_select_surveyquestions_gridform surveyquestions_gridform_sql = "SELECT SurveyAnswers.answer_id, SurveyAnswers.question_id, SurveyAnswers.answer, SurveyAnswers.answer_type, SurveyAnswers.order_in_question, surveyquestions.survey_id, surveyquestions.question, surveyquestions.question_type, surveyquestions.default_answer, surveyquestions.order_in_survey FROM SurveyAnswers, surveyquestions " & _ "WHERE surveyquestions.question_id=SurveyAnswers.question_id AND surveyquestions.survey_id = " & survey_id & " " & _ "ORDER BY order_in_survey, order_in_question" if request("sortby") <> "" AND inStr(lcase(surveyquestions_gridform_sql),"order by") = 0 then surveyquestions_gridform_sql = surveyquestions_gridform_sql + " ORDER BY " & request("sortby") end sub sub db_update_surveyquestions_gridform sql = "INSERT INTO SurveyResults (user_id,question_id,answer_id,answer_value,dt_inserted) VALUES " & _ "(" & to_sql(user_id,"number") & "," & to_sql(question_id,"number") & "," & to_sql(answer_id,"number") & "," & to_sql(answer_value,"text") & ",'" & now & "')" & _ "" 'response.write sql on error resume next cn.execute(sql) if err.number <> 0 then b_error = true end if on error goto 0 end sub sub db_delete_surveyquestions_gridform sql = "DELETE FROM surveyquestions" & _ " WHERE " & _ "survey_id = " & to_sql(survey_id,"number") & "" 'response.write sql on error resume next cn.Execute(sql) if err.number <> 0 then b_error = true end if on error goto 0 end sub do_search = request("do_search") ''' request form keys and inputs survey_id = request("survey_id") ''' request action action = lcase(request("action")) ''' action case handler select case action case "update_surveyquestions_gridform"' request form data from edit grid to update existing database records ' this case is only created when a grid form's 'update' property is enabled for i = 1 to request("question_id").Count survey_id = request("survey_id")(i) question_id = request("question_id")(i) if question_id <> "" then for j = 1 to request(question_id & "_id").Count answer_value = NULL answer_id = request(question_id & "_id")(j) '' request value response.write isEmpty(request(question_id & "_value" & j)) if isEmpty(request(question_id & "_value" & j)) then '' request radio (single) answer_id = request(question_id & "_value") db_update_surveyquestions_gridform exit for else '' request text value answer_value = request(question_id & "_value" & j) if len(answer_value) > 0 then db_update_surveyquestions_gridform end if next end if next if not b_error then response.redirect "list_surveyresults.asp?survey_id=" & survey_id case "delete_surveyquestions_gridform"' request form data from edit grid to delete existing database records ' this case is only created when a grid form's 'update' property is enabled if survey_id <> "" then db_delete_surveyquestions_gridform response.redirect request.servervariables("script_name") & "?msg=The+record+was+deleted." else b_error = true error_list.add "delete_surveyquestions_gridform", "Specify record to delete." end if end select ':: handle the default case(s) for each form (separate from action= parameter) if survey_id <> "" then ''' make sure the survey hasn't been taken set rs = cn.Execute("SELECT dt_inserted FROM SurveyQuestions,SurveyResults WHERE SurveyResults.question_id = SurveyQuestions.question_id AND user_id = " & user_id & " AND survey_id = " & survey_id) if not rs.EOF then msg_list.add "completed","Thanks. You have completed the survey" survey_id = "" else db_select_surveyquestions_gridform end if rs.Close else 'get_defaults_surveyquestions_gridform end if %> <% display_errs display_msg %>

Surveys
<% if survey_id <> "" then %> <% page_no = request("page_no") if page_no = "" then page_no = 1 if surveyquestions_gridform_sql <> "" then cmd.CommandText = surveyquestions_gridform_sql rs.Filter = "" rs.CursorLocation = 3 rs.CacheSize = 5 rs.Open cmd if not rs.EOF then rs.MoveFirst rs.PageSize = 50 max_count = cInt(rs.PageCount) num_recs = rs.RecordCount rs.AbsolutePage = page_no results = true else results = false rs.Close end if else results = false end if rec_count = 0 %>
Questions
<% if results = true then %> <% do while not rs.EOF and rec_count < rs.Pagesize ':: read db record on error resume next question_type = rs("question_type") answer = rs("answer") answer_id = rs("answer_id") answer_type = rs("answer_type") default_answer = rs("default_answer") question_id = rs("question_id") survey_id = rs("survey_id") question = rs("question") on error goto 0 %> <% if last_question <> question then '' reset answer count ans_ctr = 1 %> <% end if %> <% last_question = question ans_ctr = ans_ctr + 1 %> <% rs.MoveNext rec_count = rec_count + 1 loop rs.Close %>

<% =question %>
<% '' set default answer if avail if default_answer = answer_id then is_checked = " checked " else is_checked = "" end if '' if no anwer type use the question type (this is default for the whole question) if answer_type = "" or isNull(answer_type) then answer_type = question_type select case answer_type case "radio" response.write "" & answer case "checkbox" response.write "" & answer case "text" response.write " " & answer case "textarea" response.write answer & "
" end select response.write "" %>
<% else %> <% end if %> <% if max_count > 1 then %>
<% if page_no > 1 then %> ?<% =request_string %>page_no=<% =page_no-1 %>&sortby=<% =request("sortby") %>">PREV <% else %> <% end if %> Page  <% for i = 1 to max_count %> <% if i = cint(page_no) then %> <%=i%> <% else %> ?<% =request_string %>page_no=<% =i %>&sortby=<% =request("sortby") %>"><%=i%> <% end if %> <%next %> <% if cInt(page_no) < cInt(max_count) then %> ?<% =request_string %>page_no=<% =page_no+1 %>&sortby=<% =request("sortby") %>">NEXT <% end if %>
<% end if %> <% end if %> <% ':: assure that any db resources are freed on error resume next rs.Close set rs = NOTHING cn.Close set cn = NOTHING user_cn.Close set user_cn = NOTHING on error goto 0 %>