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

📄 survey_show.asp

📁 用ASP设计的一个网上问卷系统,用于网上调查问卷系统的实现
💻 ASP
📖 第 1 页 / 共 2 页
字号:
Templet_content=rs("Templet_content")
rs.close
while cint(InStr(Templet_content,"{$Templet("))>0
	Templet_str=mid(Templet_content,cint(InStr(Templet_content,"{$Templet("))+2,cint(InStr(Templet_content,")Templet$}"))-cint(InStr(Templet_content,"{$Templet("))-2)    
	Templet_content=replace(Templet_content,"{$"&Templet_str&")Templet$}",Templet_change(replace(Templet_str,"Templet(","")))
wend
Templet_content=replace(Templet_content,"{$keywords$}",keywords)
Templet_content=replace(Templet_content,"{$descrip$}",descrip)
Templet_content=replace(Templet_content,"{$siteName$}",siteName)
Templet_content=replace(Templet_content,"{$Survey_name$}",Survey_name)
Templet_content=replace(Templet_content,"{$surveyQuestionList$}",surveyQuestionList)
while cint(InStr(Templet_content,"{$"))>0
Templet_content_func_all=mid(Templet_content,instr(Templet_content,"{$")+2,instr(Templet_content,"$}")-instr(Templet_content,"{$")-2)
Templet_content_func=split(Templet_content_func_all,"(")
Templet_content_func(1)=replace(Templet_content_func(1),")","")
Templet_content_para=split(Templet_content_func(1),",")
Select Case Templet_content_func(0)
	Case "FlashRing"
	    Templet_content=replace(Templet_content,"{$"&Templet_content_func_all&"$}",FlashRing(Templet_content_para(0),Templet_content_para(1),Templet_content_para(2),Templet_content_para(3)))
Case "Get_Survey_Paihang"
	    Templet_content=replace(Templet_content,"{$"&Templet_content_func_all&"$}",Get_Survey_Paihang(Templet_content_para(0),Templet_content_para(1),Templet_content_para(2),Templet_content_para(3)))
	Case "FriendLink"	
	    Templet_content=replace(Templet_content,"{$"&Templet_content_func_all&"$}",FriendLink(Templet_content_para(0),Templet_content_para(1),Templet_content_para(2),Templet_content_para(3),Templet_content_para(4)))
	Case "New_Survey_List"
	    Templet_content=replace(Templet_content,"{$"&Templet_content_func_all&"$}",New_Survey_List(Templet_content_para(0),Templet_content_para(1),Templet_content_para(2),Templet_content_para(3)))
	Case else
		Templet_content=replace(Templet_content,"{$"&Templet_content_func_all&"$}","")
End Select

wend
I1 Templet_content
'----------------------------------------------------------
'模板操作结束
'----------------------------------------------------------


select case Action
    case "survey_save" call survey_save
    case "sub_check_pass" call sub_check_pass
end select
'----------------------------------------------------------
'验证用户提交的密码---start
'----------------------------------------------------------
sub sub_check_pass
dim survey_pass:survey_pass=md5(request.Form("pass"),16)
sql="select * from [Survey] where Survey_id="&Survey_id
rs.open sql,conn,1,3
if rs.eof then
call ShowAlert("参数错误","")
else
	if rs("Survey_password")=survey_pass then
		session("pass")=survey_pass
		Call ShowAlert("密码正确","Survey_Show.asp?Survey_id="&Survey_id&"")
	else
		Call ShowAlert("密码错误","Index.asp")
	end if
end if
rs.close
end sub
'----------------------------------------------------------
'验证用户提交的密码---over
'----------------------------------------------------------

'----------------------------------------------------------
'普通情况下的保存问卷数据过程---start
'----------------------------------------------------------
sub survey_save
I1 "split_||||"'分离页面信息和返回信息用
Survey_id=request.QueryString("Survey_id")
userDatum_email=trim(request.form("user_email"))
canSubmit=true
sql="select * from [Survey] where Survey_id=" & Survey_id
rs.open sql,conn,1,3
if rs.eof then
	I1 "||||问卷ID错误"
	canSubmit=false
else
Survey_content=rs("Survey_content")
Survey_needUserInfo=rs("Survey_needUserInfo")
Survey_annal=rs("Survey_annal")
end if
rs.close
if Survey_ipRepeat="False" then'对于同一IP不可重复提交的问卷,进行IP验证
	UserIp=request.servervariables("http_x_forwarded_for") 
	if UserIp="" then 
		UserIp=request.servervariables("remote_addr")
	end if
	sql="select * from [Ip] where Ip_survey="&Survey_id&" and Ip_content='" & UserIp & "'"
	rs.open sql,conn,1,3
	if not rs.eof then
		I1 "||||对不起,您已经提交过一份问卷!"
		canSubmit=false
	end if
	rs.close
end if
if Survey_needUserInfo=true then'对于需要用户填写资料的问卷,根据email这一唯一标示进行用户是否已经提交的验证
userDatum_email=trim(request.Form("user_email"))
if userDatum_email="" then
	I1 "||||用户资料输入不完整或有误"
	canSubmit=false
else
	sql="select * from [userDatum] where userDatum_email='" & userDatum_email & "' and userDatum_belong=" & Survey_id
	rs.open sql,conn,1,3
		if not rs.eof then
			I1 "||||您已经提交过一份问卷"
			canSubmit=false
		end if
	rs.close
end if
end if
dim Question_result_new
Question_type_save=request.form("Question_type")
Survey_question_save=split(Survey_content,",")
Question_type_save=split(Question_type_save,",")
if ubound(Question_type_save)<>ubound(Survey_question_save) then
I1 "||||问卷错误,可能您一次打开多个问卷"
end if
for k=0 to ubound(Survey_question_save)'外循环,所有的题目扫描一遍,检验问卷填写是否完整
	value_d=request.Form("answer"&Survey_question_save(k))
	if value_d="" then
        I1 "||||第"&k+1&"道题目未填写完整"
		canSubmit=false
	end if
next
if canSubmit=false then
response.End()
end if
application.Lock()
for k=0 to ubound(Survey_question_save)'外循环,所有的题目扫描一遍,保存结果到题目表中
select case Question_type_save(k)
  case "1","2"' 单项和多项选择题的数据保存
	value_d=request.Form("answer"&Survey_question_save(k))
	sql="select Question_result from [Question] where Question_id="&Survey_question_save(k)
	rs.open sql,conn,1,3
	dim Question_result
	Question_result=split(rs("Question_result"),",")
	if len(value_d)>1 then'对于返回是数组的返回值,是对多项选择的处理
	value_d=split(value_d,",")
	for each val in value_d
	Question_result(val)=Question_result(val)+1
	next
	else
	Question_result(value_d)=Question_result(value_d)+1
	end if
	for each Qc in Question_result'新结果重新连接成一串数据
	if Question_result_new="" then
	Question_result_new=Qc
	else 
	Question_result_new=Question_result_new&","&Qc
	end if
	next
	rs("Question_result")=Question_result_new
	rs.update
	Question_result_new=""
	rs.close
  case "3","4"'单项、多项选择题和文本混合的数据保存
	value_d=request.Form("answer"&Survey_question_save(k))
	sql="select Question_result from [Question] where Question_id="&Survey_question_save(k)
	rs.open sql,conn,1,3
	Question_result=split(rs("Question_result"),",")
	if len(value_d)>1 then'对于返回是数组的返回值,是对多项选择的处理
	value_d=split(value_d,",")
	for each val in value_d
		if cint(val)=cint(ubound(Question_result)) then'用户选择了多项选择题和文本混合题型的最后一项
			sqlt="select * from [Text]"
			rst.open sqlt,conn,1,3
			rst.addnew
			rst("Text_content")=request.Form("answer"&Survey_question_save(k)&"_2")
			rst("Text_belong")=Survey_question_save(k)
			rst.update
			rst.close
		end if
	Question_result(val)=Question_result(val)+1
	next
	else
		if cint(value_d)=cint(ubound(Question_result)) then'用户选择了单项选择题和文本混合题型的最后一项
			sqlt="select * from [Text]"
			rst.open sqlt,conn,1,3
			rst.addnew
			rst("Text_content")=request.Form("answer"&Survey_question_save(k)&"_2")
			rst("Text_belong")=Survey_question_save(k)
			rst.update
			rst.close
		end if
	Question_result(value_d)=Question_result(value_d)+1
	end if
	for each Qc in Question_result'新结果重新连接成一串数据
	if Question_result_new="" then
	Question_result_new=Qc
	else 
	Question_result_new=Question_result_new&","&Qc
	end if
	next
	rs("Question_result")=Question_result_new
	rs.update
	Question_result_new=""
	rs.close
  case "5"'纯文本的题目的数据保存
	value_d=request.Form("answer"&Survey_question_save(k))
	sql="select * from [Text]"
	rs.open sql,conn,1,3
	rs.addnew
	rs("Text_content")=value_d
	rs("Text_belong")=Survey_question_save(k)
	rs.update
	rs.close
end select
next'扫描全部题目结束
if Survey_needUserInfo=true then'对于需要用户填写资料的问卷的处理
    '对于需要记录单个用户结果的问卷,此处将所有的结果连接成字符串
	dim userDatum_result:userDatum_result=""
	dim userDatum_result_arr:userDatum_result_arr=""
	Dim value_d
	if Survey_annal=true then
		for k=0 to ubound(Survey_question_save)'外循环,所有的题目扫描一遍,保存结果
		    userDatum_result=""
			select case Question_type_save(k)
				case "1","2"' 单项和多项选择题的数据保存
				    value_d=request.Form("answer"&Survey_question_save(k))
					value_d=split(value_d,",")
					for each val in value_d
						if userDatum_result<>"" then
							userDatum_result=userDatum_result&"$$$$"&trim(val)
						else
							userDatum_result=trim(val)
						end if
					next
				case "3","4"
				sql="select Question_answer from [Question] where Question_id="&Survey_question_save(k)
				rs.open sql,conn,1,3
				dim Question_answer
				Question_answer=split(rs("Question_answer"),"&")
				rs.close
				value_d=request.Form("answer"&Survey_question_save(k))
				value_d=split(value_d,",")
				for i=0 to ubound(value_d)
					if  cint(ubound(Question_answer))<>cint(trim(value_d(i))) then
						if userDatum_result<>"" then
							userDatum_result=userDatum_result&"$$$$"&trim(value_d(i))&"::::"&trim(value_d(i))
						else
							userDatum_result=trim(value_d(i))&"::::"&trim(value_d(i))
						end if
					else
						text_temp=replace(request.Form("answer"&Survey_question_save(k)&"_2"),"::::","")
						if userDatum_result<>"" then
							userDatum_result=userDatum_result&"$$$$"&trim(value_d(i))&"::::"&text_temp
						else
							userDatum_result=trim(value_d(i))&"::::"&text_temp
						end if
					end if
				next
				case "5"
				userDatum_result=trim(request.Form("answer" & Survey_question_save(k)))
	        end select
			if userDatum_result_arr<>"" then
			'将所有的题目的结果连接成字符串
			userDatum_result_arr=userDatum_result_arr&"||||"&userDatum_result
			else
			userDatum_result_arr=userDatum_result
			end if
		next
	end if
	sql="select * from [userDatum]"
	rs.open sql,conn,1,3
	rs.addnew
	rs("userDatum_name")=trim(request.Form("user_name"))
	rs("userDatum_email")=userDatum_email
	rs("userDatum_belong")=Survey_id
	rs("userDatum_result")=userDatum_result_arr
	rs("userDatum_date")=now()
	rs.update
	rs.close
end if

'有效问卷加1
sql="select Survey_usehits from [Survey] where Survey_id="&Survey_id
rs.open sql,conn,1,3
rs(0)=rs(0)+1
rs.update
rs.close
if Survey_ipRepeat="False" then'对于同一IP不可重复提交的问卷,记录IP
	UserIp=request.servervariables("http_x_forwarded_for") 
	if UserIp="" then 
	UserIp=request.servervariables("remote_addr")
	end if
	sql="select * from [Ip]"
	rs.open sql,conn,1,3
	rs.addnew
	rs("Ip_content")=UserIp
	rs("Ip_survey")=Survey_id
	rs("Ip_date")=date()
	rs.update 
	rs.close
end if
application.unLock()
session("pass")=""
I1 "问卷提交成功,感谢您的参与!!"
I1 "split_||||"'分离页面信息和返回信息用
end sub
'----------------------------------------------------------
'普通情况下的保存问卷数据过程---over
'----------------------------------------------------------
%>
<script language="javascript">
function survey_submit(){
    var options = {
		beforeSubmit:   showRequest_survey_submit,
		success:        showResponse_survey_submit
	};
    $('#form_survey').ajaxForm(options);
   
}
function showRequest_survey_submit(formData,jqForm,options){
	var queryString = $.param(formData);
	return true;
}
function showResponse_survey_submit(responseText,statusText){
	var text=responseText.split('split_||||');
	if (text[1].search("成功")>0){
	$('#form_survey').clearForm();
	alert(text[1]);
	location.href='Index.asp';
		 }else
	alert('由于以下原因,问卷不能正常提交:\n'+text[1].replace(/\|\|\|\|/gi,"\n"));
}
</script>

⌨️ 快捷键说明

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