web|投票|投票 綱要
本文介紹一個用 ASP 技術實現的 WEB 調查系統(也稱為投票系統)的實現,該系統支援基於瀏覽器的調查項目建立與維護、調查表單的動態產生以及投票結果分析。
目錄
一、系統概貌
二、調查項目的建立和維護
三、調查表單的產生與結果分析(附來源程式)
一、系統概貌
作 者 : 仙人掌工作室
本文所介紹的 WEB 調查系統(或稱為投票系統)支援基於瀏覽器的調查項目建立、管理與結果分析。調查項目及其下屬各個問題的定義、使用者投票結果儲存於 Access 資料庫,調查表單由指令碼動態產生。使用者通過選項按鈕或複選框回答問題,表單提交之後伺服器在同一個資料庫中記錄調查結果。通過 WEB 調查系統的分析模組,使用者可以立即獲知任意調查項目的投票結果。
整個系統以資料庫為中心,因此,本文也可以看成是在 ASP 應用中維護資料庫的一個示範,如表的建立、刪除,以及基於瀏覽器的資料庫記錄建立、刪除、編輯,這些操作均由伺服器動態產生的 SQL 命令、 JavaScript 指令碼實現。
一、系統概貌
㈠系統構成
從功能上看,整個系統可以分成四個部分,分別對應於圖 1 到圖 4 四個頁面。其中圖 1 和圖 2 是系統的維護介面。圖 1 所示的頁面用於建立調查項目、刪除調查項目或其投票結果,以及指定調查項目名字和使用者密碼訪問圖 2 所示的調查項目編輯器。
【圖 1 WEBPollSystem_1.gif 】
圖 2 所示頁面用於編輯指定調查項目所屬各個問題,直接提供的功能包括建立新問題、刪除問題、更改問題的提示文本以及瀏覽問題等,綜合運用上述功能可以重新定義問題類型。本系統支援 5 種問題類型:是 / 否(即只需回答“是”或“否”的問題),贊同程度(系統為這類問題預定義從“強烈反對”到“完全贊同”共 5 個等級的答案)、自訂語義的等級區分(預定義 7 個等級的答案,但具體含義由使用者定義),自訂提示文本的多個選項(選項數量以及各個選項提示文本均由使用者指定,每個問題只能選擇一個答案),允許複選的多個選項(選項數量以及各個選項提示文本也由使用者指定,允許選擇多個答案),後面兩種問題類型允許最多 26 個選項。圖 2 中間(底部提示行的上面)所顯示的即為第 4 種問題類型(多個選項)的編輯介面。
【圖 2 WEBPollSystem_2.gif 】
圖 3 是 WEB 使用者所見到的調查表單。圖中顯示的 4 個問題依次對應於前面 1 — 4 種問題類型,第 5 種問題類型(允許複選)要求用複選框回答問題,圖中沒有顯示出來。使用者在選擇結束後只要單擊頁面底部的“提交”按鈕即可。
【圖 3 WEBPollSystem_3.gif 】
圖 4 是投票結果的統計分析頁面。
【圖 4 WEBPollSystem_4.gif 】
Access 資料庫 Poll.mdb 的 ODBC 系統 DSN 名為“ POLL ”。每一個調查項目都需要下表所定義的三個表,它們在建立新的調查項目時由 ASP 指令碼自動建立,其維護工作也可以通過瀏覽器進行。這三個表的名字分別以 S_ 、 A_ 、和 R_ 為首碼,後面加上調查項目的名字,分別用來儲存調查項目的問題和問題標識( Stem )、答案類型( Answer )、使用者回答( Response )。
問題表 (S_)
欄位名稱 類型 大小 索引 說明
ID Text 3 Yes 主關鍵字
Type Text 1 No
NoOpinion Text 1 No
Stem Text 200 No
答案表 (A_)
欄位名稱 類型 大小 索引 說明
ID Text 3 Yes 主關鍵字
ALabel Text 1 Yes 主關鍵字
Answer Text 150 No
使用者投票結果表 (R_)
欄位名稱 類型 大小 索引 說明
Responses Text 100 No
Startup.html 負責產生系統維護頁面的幀結構; PollMaker.asp 負責產生圖 1 頁面並支援從該頁面啟動的其它操作(調查項目的建立、刪除、投票結果清除等); ItemMaker.asp 負責產生圖 2 頁面,支援調查項目所屬問題的定義、編輯、刪除。調查表單(圖 3 )由 PollWriter.asp 產生,投票結果的分析(圖 4 )由 PollResult.asp 實現。整個調查系統的工作以資料庫為中心: PollMaker.asp 和 ItemMaker.asp 需要建立、刪除、修改 poll.mdb 中定義調查項目的各個表; PollWriter.asp 從 S_ 和 A_ 表產生調查表單;當使用者提交調查表單時 PollMaker.asp 中的一個函數將投票結果寫入對應的 R_ 表; PollResult.asp 聯合 S_ 表和 A_ 表中的文本資料以及 R_ 表中的投票結果,產生當前調查項目的結果統計圖表。
㈡如何建立和編輯調查項目
在正確安裝 WEB 調查系統之後(請參見本文所附原始碼中的安裝說明),就可以用瀏覽器開啟 Startup.html ,出現圖 1 所示的身分識別驗證頁面。下拉式清單方塊列出了當前在 Poll.mdb 中定義的所有調查項目。如果要建立一個新的調查項目,必須先在列表框中選擇“ NEW POLL ”,然後在列表框的右邊輸入新調查項目的名字,在密碼輸入框輸入密碼(預設為“ WEBPOLL ”,大小寫均可),最後單擊“建立 / 編輯調查項目”按鈕。要刪除某個調查項目已有的結果記錄,或將調查結果與調查項目本身一起刪除,分別使用“刪除調查結果”或“刪除當前調查項目”按鈕。
建立或編輯調查項目所屬的問題都在圖 2 所示的頁面進行。在建立一個新的問題之前,先應該選擇合適的問題類型(頁面上端的選項按鈕);對於“多個選項”或“允許複選”這兩種問題類型,還必須指定所提供選項的數量;如果選中了“允許不回答”複選框,則除了“允許複選”之外的所有其它類型問題都將附加一個“暫不回答”選項(選項按鈕)。在做好上面這些選擇之後,單擊“建立”按鈕就會出現一個空白的問題定義表單。接下來就可以輸入問題提示文本,如必要的話再輸入答案中的提示文本,文本中可以嵌入 HTML 標籤。如果要改變問題的類型或答案數量,則需先刪除原有的問題定義,然後再建立問題。所有的建立和編輯工作都在用戶端進行,可以用“儲存”按鈕將這些修改儲存到伺服器上的 Poll.mdb 資料庫。
圖 2 中的問題瀏覽按鈕用來查看當前調查項目中的各個問題,在“轉到指定問題 - 〉”按鈕後面輸入問題序號,然後單擊按鈕即可顯示對應的問題。新定義的問題總是加入到調查項目的最後。如果要將它放到另外一個位置,只要在“移到該問題後面”按鈕後輸入合適數值並單擊該按鈕,輸入數值 0 可以將問題移到最前面。
(未完待續)