開源的CMS如何實現問卷調研✺ϟ☇♤♧♡♢♠♣♥?
投票⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ、報名等一般微信內有很多這樣的工具ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,但是比如正式學術會議報名✵✶✷✸✹✺✻✼❄❅、學校內部學生報名ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ、問卷調研等系統✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,一般會通過網站提交表單來實現⒜⒝⒞⒟⒠⒡⒢⒣⒤。
那么到底如何通過開源的CMS來構建一個問卷調查呢✺ϟ☇♤♧♡♢♠♣♥?本文就通過如何用開源的解決方案웃유ღ♋♂,架構出一個類似問卷星的平臺⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ。
能做CMS的問卷調查很多ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,我們把常見的不同CMS做了對比ⓚⓛⓜⓝⓞⓟⓠⓡⓢ,比如Wordpress⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ、Shopifyⓚⓛⓜⓝⓞⓟⓠⓡⓢ、Drupal都有問卷表單☈⊙☉℃℉❅,Wordpress里面的wpforms就很強大㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,Drupal里面的webform也很強大㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂。
我們今天講一下Drupal里面的WebForm功能㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂。
調研問卷的數據結構設計
調研問卷的核心表有兩個:一個是問卷結構表✵✶✷✸✹✺✻✼❄❅,另一個是問卷數據提交表♦☜☞☝✍☚☛☟✌✽✾✿❁❃。
結構表:id✵✶✷✸✹✺✻✼❄❅、結構①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯。結構用JSON或者xml等序列化的方式㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,存儲表的結構⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾、表的結構邏輯等信息☈⊙☉℃℉❅。
數據表✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴,提交的表ID❣❦❧♡۵、字段ID㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉、字段值⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。
這樣☈⊙☉℃℉❅,用戶提交過來的數據⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,每一個字段的值都是一行☧☬☸✡♁✙♆。,、':∶;,比如一個表10個字段⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,就會存儲10條數據①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,這樣雖然數據量較大♦☜☞☝✍☚☛☟✌✽✾✿❁❃,但是好處是用戶的數據都是單獨存儲在數據庫的⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,可以生成導出腳本以及做數據分析웃유ღ♋♂。
可以參考下面的數據結構圖:

Drupal的WebForm介紹
Drupal有一個神器叫WebFormⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,可以創建各種各樣的表單(Form)㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,支持多種類型的字段⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,比如文字❣❦❧♡۵、生日⒜⒝⒞⒟⒠⒡⒢⒣⒤、電話㈠㈡㈢㈣㈤㈥㈦、下拉列表等等웃유ღ♋♂,還支持條件❣❦❧♡۵,比如當選擇男/女的時候㈠㈡㈢㈣㈤㈥㈦,分別顯示出不同的結果ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,因此功能相當強大☾☽❄☃。
不過Webform本身也是結構也是符合之前說的標準ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,一個結構表一個數據表☧☬☸✡♁✙♆。,、':∶;,這樣也比較好管理和擴展ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ。
如下圖㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,可以通過添加元素⑰⑱⑲⑳⓪⓿❶❷❸❹❺,直接創建一個表單ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,這個表單有名字⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ、EmailⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ、主題和留言☾☽❄☃。
表單創建♦☜☞☝✍☚☛☟✌✽✾✿❁❃,直接可以添加元素

多步表單✺ϟ☇♤♧♡♢♠♣♥,表單有下一步功能

要美麗⑰⑱⑲⑳⓪⓿❶❷❸❹❺、要美麗✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴、要美麗
看見上面的界面①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,是不是操作的欲望會少一半㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉? 人靠衣裝ⓣⓤⓥⓦⓧⓨⓩ,現在的應用還是要把UI和用戶體驗提上去ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,所以ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,我們基于Drupal的Webform和API✺ϟ☇♤♧♡♢♠♣♥,開發了一個類似問卷星的工具❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,后臺可視化操作㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,所見即所得❻❼❽❾❿⓫⓬⓭⓮⓯⓰,保存即可輸出一個H5的表單頁面❻❼❽❾❿⓫⓬⓭⓮⓯⓰,并且是多賬戶的⒜⒝⒞⒟⒠⒡⒢⒣⒤,也就是每一個用戶可以創建自己的表單웃유ღ♋♂,跟其他人分開⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。
提交的數據也是能隨時查看✺ϟ☇♤♧♡♢♠♣♥,并且可以導出Excel❻❼❽❾❿⓫⓬⓭⓮⓯⓰,高級功能還有提交后通知功能ⓚⓛⓜⓝⓞⓟⓠⓡⓢ,比如有一個報名功能⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,一旦有人提交❻❼❽❾❿⓫⓬⓭⓮⓯⓰,就給你發短信㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,這樣就能第一時間處理㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉,所以管理比較方便ⓣⓤⓥⓦⓧⓨⓩ。
表單構建界面

表單通知設置

表單的手機端展示界面

最后說明一下ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,表單系統也可以作為考試來用⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ,加上分數計算①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,就可以直接得到分數了✵✶✷✸✹✺✻✼❄❅,因此表單也是在線教育平臺的一個重要功能㈠㈡㈢㈣㈤㈥㈦。
關于表單功能⒜⒝⒞⒟⒠⒡⒢⒣⒤、在線教育ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ、以及CMS⑰⑱⑲⑳⓪⓿❶❷❸❹❺,可以點擊查看相關產品和之前的文章:
2. 在線視頻教育學習平臺介紹
4. 基于CMS的圖庫管理系統