用ASP技術開發WEB調查(投票)系統 (3)
來源:互聯網
上載者:User
三、調查表單的產生與結果分析
作 者 : 仙人掌工作室
PollWriter.asp先檢查表單變數,包括調查項目名字PollName以及(可選的)字串LinkText和LinkURL,LinkText和LinkURL描述了使用者提交其投票結果之後顯示的URL。接下來指令碼建立並執行從指定調查項目的S_表和A_表提取記錄集的SQL命令,然後遍曆這個記錄集格式化選項按鈕、複選框以及其它提示文本,最後輸出該調查項目的HTML表單。表單中問題的名字為“CHOICE”加問題序號。當這個表單被提交的時,它的ACTION將裝載PollMaker.asp(這裡的函數saveResponses()從CHOICE表單元素提取投票結果,然後更新資料庫,代碼略)。表單中的其它隱藏變數用於將PollName、OpType、LinkText、LinkURL傳遞給PollMaker.asp:
< %
' 從S_表和A_表讀取調查項目定義
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "poll"
SQLCommand = "Select " & SName & ".ID, " & _
"IType, NoOpinion, Stem, ALabel, Answer FROM " & SName & "LEFT JOIN " & _
AName & " ON " & SName & ".ID = " & AName & ".ID ORDER BY " & _
SName & ".ID, ALabel"
Set objRS = objConn.Execute(SQLCommand)
' 向調查表單輸出各個問題
Do While Not objRS.EOF
Response.Write("< TR>< TD>" & objRS("ID") & ".< TD BGCOLOR=""#ffff00"">" & _
objRS("Stem"))
Response.Write("< TR>< TD>< TD>")
ckNoOpinion = IIf(objRS("NoOpinion") = "Y", "", "Checked")
noMove = False
' 除"允許複選",其它各類問題均需檢查是否允許不回答問題