📄 survey_show.asp
字号:
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 + -