ทุกคนจะต้องคุ้นเคยกับแบบสำรวจออนไลน์ โดยมีคำถามและคำตอบหลายข้อให้ผู้ใช้กรอก จากนั้นผลลัพธ์จะถูกบันทึกลงในฐานข้อมูล สถิติจะดำเนินการโดยอัตโนมัติ และสุดท้ายจะได้รับกราฟทางสถิติ ฉบับนี้ติดตามผมและจัดทำระบบสำรวจออนไลน์
1. การออกแบบเชิงฟังก์ชัน:
ระบบที่เรียบง่ายเช่นนี้จำเป็นต้องได้รับการออกแบบเชิงฟังก์ชันหรือไม่? บางคนอาจพบว่ามันแปลก แต่ต้องบอกว่า ไม่ว่าจะเป็นระบบแบบไหน หากคุณออกแบบ Functional Design ก่อน คุณก็สามารถเข้าใจระบบได้ชัดเจนยิ่งขึ้นเสมอ มาดูกันว่าแบบสำรวจออนไลน์ทำอะไรได้บ้าง ฟังก์ชันพื้นฐานที่ได้กล่าวไปแล้วข้างต้นคือการให้คำถามและคำตอบหลายข้อ จากนั้นสร้างสถิติและสุดท้ายก็ให้กราฟ บนพื้นฐานนี้ เราสามารถพิจารณาเพิ่มช่วงเวลา (ระยะเวลาที่มีผลใช้ได้) ให้กับแบบสำรวจ ในช่วงเวลานี้ แบบสำรวจจะมีผลใช้ได้ หลังจากช่วงเวลานี้ แบบสำรวจจะสิ้นสุดโดยอัตโนมัติ นอกจากนี้ เราสามารถระบุได้ว่าผู้ใช้สามารถส่งคำตอบได้ครั้งละครั้งเท่านั้น หากคุณต้องการเข้มงวดมากขึ้น คุณสามารถระบุได้ว่า IP สามารถส่งคำตอบได้เพียงครั้งเดียว อย่างไรก็ตาม การดำเนินการนี้อาจอนุญาตให้มีเพียงคนเดียวในร้านอินเทอร์เน็ตที่สามารถส่งคำตอบได้ สำหรับคำถามในแบบสำรวจ บางคำถามอาจเป็นคำถามแบบตัวเลือกเดียว และบางคำถามอาจเป็นคำถามแบบปรนัย สุดท้ายนี้ เรามาพูดถึงกราฟทางสถิติกัน ในกราฟทางสถิติ ควรแสดงคำตอบ จำนวนผู้ลงคะแนนสำหรับแต่ละคำตอบ และสัดส่วนการโหวตสำหรับแต่ละคำตอบ โดยทั่วไปแล้ว การใช้ไดอะแกรมแนวนอนก็เพียงพอแล้ว ซึ่งง่ายต่อการนำไปใช้ แน่นอนว่า หากคุณต้องการเปลี่ยนเป็นไดอะแกรมแนวตั้ง คุณก็สามารถทำได้เช่นกัน
จากที่กล่าวมาข้างต้น ฟังก์ชันของการสำรวจออนไลน์สรุปได้ดังนี้:
1. ข้อมูลจะถูกบันทึกไว้ในฐานข้อมูล ACCESS 2000
2. ผู้ใช้แต่ละคนสามารถลงคะแนนได้หนึ่งครั้งต่อการเข้าชม
3. สถิติของการสำรวจแต่ละครั้งจะได้รับและแสดงด้วย แผนภูมิสถิติ
4. การสำรวจแต่ละครั้งมีวันหมดอายุและสิ้นสุดโดยอัตโนมัติหลังจากหมดอายุ สามารถดูได้เฉพาะผลการสำรวจที่เสร็จสิ้นแล้วเท่านั้น
5. ผู้ดูแลระบบสามารถเพิ่มแบบสำรวจและแก้ไขคำตอบของแบบสำรวจได้ (เพิ่ม แก้ไข ลบ แก้ไขประเภท)
6. สำหรับแบบสำรวจที่สิ้นสุดแล้ว ผู้ดูแลระบบสามารถลบแบบสำรวจได้เท่านั้น แต่ไม่สามารถแก้ไขคำตอบได้
7. มีผู้ดูแลระบบเพียงคนเดียว (ผู้ใช้คนเดียว)
2. การออกแบบฐานข้อมูล
ตอนนี้เรามาออกแบบฐานข้อมูลกันดีกว่า ตามความต้องการด้านการทำงาน จะต้องมีตารางอย่างน้อย 3 ตาราง ตารางหนึ่งคือตารางผู้ดูแลระบบ ตารางที่สองคือตารางการสำรวจ และ ประการที่สามคือตารางผลการสำรวจ ชื่อไฟล์ฐานข้อมูลคือ explore.mdb และสามารถเปลี่ยนเป็น .asp ได้ ในกรณีนี้ โปรดทำการแก้ไขที่เกี่ยวข้องในโปรแกรม ASP
ตารางที่ 1. ชื่อตารางตารางผู้ดูแลระบบ: จัดการ
-------------------------------------------------- -------------------------------------------------- ---------------
คำอธิบายความยาวประเภทฟิลด์
-------------------------------------------------- -------------------------------------------------- ---------------
Manage_id การกำหนดหมายเลขอัตโนมัติ - ไม่ได้ใช้ที่นี่ จะถูกขยายในอนาคต
Manage_username ข้อความ 15 ชื่อผู้ใช้ของผู้ดูแลระบบ
Manage_password ข้อความ 15 รหัสผ่านผู้ดูแลระบบ
-------------------------------------------------- -------------------------------------------------- ---------------
หลังจากสร้างตารางจัดการแล้ว ให้เพิ่มบันทึกใหม่และกรอกชื่อผู้ใช้และรหัสผ่านผู้ดูแลระบบของคุณ ที่นี่คุณกรอก
ตาราง xmxoxo 2 ชื่อตารางแบบสำรวจ: แบบสำรวจ
-------------------------------------------------- -------------------------------------------------- ---------------
คำอธิบายความยาวประเภทฟิลด์
-------------------------------------------------- -------------------------------------------------- ---------------
Survey_id การกำหนดหมายเลขอัตโนมัติ - ส่วนเพิ่ม, คีย์หลัก, จัดทำดัชนี, ไม่มีการทำซ้ำ
แบบสำรวจ_คำถามข้อความ 255 คำถามแบบสำรวจ
Survey_type ไม่ว่าจะ - ประเภท, ไม่ใช่: ตัวเลือกเดียว ใช่: หลายตัวเลือก
Survey_stime date - วันที่ยาว, เวลาเริ่มต้น
Survey_etime date - วันที่ยาว, เวลาสิ้นสุด
-------------------------------------------------- -------------------------------------------------- ---------------
ตารางที่ 3. แบบฟอร์มสิ้นสุดการสำรวจ ชื่อตาราง: Survey_vote
------------------------- ------ --------------------------------------------
คำอธิบายความยาวประเภทฟิลด์
-------------------------------------------------- -------------------------------------------------- ---------------
vote_no การกำหนดหมายเลขอัตโนมัติ - เพิ่ม, คีย์หลัก, จัดทำดัชนีและไม่มีการทำซ้ำ
vote_id จำนวนเต็มยาว - จัดทำดัชนีและทำซ้ำ มีจุดทศนิยม 0
vote_answer ข้อความตอบแบบสำรวจ 100 ข้อ
vote_count long - จำนวนโหวต
-------------------------------------------------- -------------------------------------------------- ---------------
ในบรรดาตาราง Survey_vote และฟิลด์ ID ของตารางการสำรวจมีความสัมพันธ์แบบกลุ่มต่อหนึ่ง ไม่จำเป็นต้องสร้างความสัมพันธ์นี้ แต่การสร้างความสัมพันธ์จะทำให้ความคิดชัดเจนยิ่งขึ้น
3.ไม่มีฟังก์ชันมากมายที่ใช้ที่นี่เพื่อ
รวมไฟล์
ส่วนใหญ่จะใช้เพื่อดำเนินการฐานข้อมูล หากคุณต้องการป้องกัน HTML และโค้ดอื่น ๆ เมื่อป้อนข้อมูล เพียงใช้ server.htmlencode เพื่อประมวลผล ดังนั้นจึงไม่จำเป็นต้อง ฟังก์ชั่นพิเศษในการจัดการ เราสามารถใช้ไฟล์ที่รวมไว้ในบทความก่อนหน้า "เรียนรู้จากฉัน" ซีรีส์ "เรียนรู้จากฉันเพื่อสร้างเมนูแบบต้นไม้"
ไฟล์ฟังก์ชันที่ใช้ร่วมกัน ชื่อไฟล์: inc.asp
<%
''************************************************ *******************
'' ฟังก์ชัน ASP ฐานข้อมูลทั่วไป
''************************************************ *******************
''ค่าคงที่ฐานข้อมูล
Databasename="survey.mdb" ''ชื่อฐานข้อมูล หากคุณเปลี่ยนชื่อ ให้แก้ไขที่นี่
''************************************************ *******************
''เปิดฐานข้อมูล
opendb ย่อย (เชื่อมต่อ)
ตั้งค่าการเชื่อมต่อ = server.CreateObject ("ADODB.connection")
Connect.ConnectionString="DRIVER={ไดรเวอร์ Microsoft Access (*.mdb)}; DBQ=" &_
server.MapPath (ชื่อฐานข้อมูล)
เชื่อมต่อ เปิด strconn
จบย่อย
''************************************************ *******************
''ปิดฐานข้อมูล
ย่อยปิด (เชื่อมต่อ)
เชื่อมต่อ.ปิด
ตั้งค่าการเชื่อมต่อ=ไม่มีอะไร
จบย่อย
''************************************************ *******************
''เปิดโต๊ะอ่านหนังสือตัวเดียว
opentable ย่อย (เชื่อมต่อ tbname myrs)
ตั้งค่า myrs=server.createobject("ADODB.recordset")
rssql = "เลือก * จาก" & tbname
myrs.open rssql, เชื่อมต่อ, 1,1
จบย่อย
''************************************************ *******************
''ปิดโต๊ะชั่วคราว
ตู้เสื้อผ้าย่อย(rs)
฿.ปิด
ตั้งค่า rs=nothing
จบย่อย
''************************************************ *******************
''ฐานข้อมูลแบบสอบถาม
ค้นหาย่อย (เชื่อมต่อ, sql, rs)
ตั้งค่า rs=server.createobject("ADODB.recordset")
rs.open sql เชื่อมต่อ 1,1
จบย่อย
''************************************************ *********************
''สอบถามและเปลี่ยนฐานข้อมูล
การเปลี่ยนแปลงย่อย (เชื่อมต่อ, sql, rs)
ตั้งค่า rs=server.createobject("ADODB.recordset")
rs.open sql เชื่อมต่อ 1,3
จบย่อย
''************************************************ *********************
''แสดงข้อมูลสำหรับการดีบัก
ย่อยด้วย(ข้อความ)
ตอบกลับ.เขียนข้อความ
จบย่อย
''************************************************ *********************
'' โปรแกรมขัดจังหวะสำหรับการดีบัก
ผู้ใช้ย่อย()
การตอบสนองสิ้นสุด
จบย่อย
%>
4. การออกแบบเอกสาร
ตามความคิดแบบดั้งเดิม เรามักจะออกแบบแบบสำรวจออนไลน์ออกเป็นสามส่วน ส่วนแรกคือการแสดงแบบสอบถาม ส่วนที่สองคือการแสดงผลทางสถิติของการสำรวจ และส่วนที่สามคือการจัดการเบื้องหลัง ในการใช้งานจริง เราจะพบว่าแบบสอบถามมักจะแสดงบนหน้าเว็บบางหน้า และมักจะแสดงผลลัพธ์ในหน้าต่างป๊อปอัป การจัดการแบ็กเอนด์จะถูกส่งผ่านลิงก์อื่นหรือแบบฟอร์มเข้าสู่ระบบ เพื่อให้ใช้งานแบบสำรวจออนไลน์ได้สะดวกยิ่งขึ้น เราได้เขียนส่วนของการแสดงแบบสอบถามเป็นสคริปต์ JS เพื่อให้หน้าเว็บที่ต้องการแสดงแบบสอบถามสามารถเรียกได้อย่างอิสระโดยอ้างอิงสคริปต์ เอาล่ะ มาดูการออกแบบไฟล์
กันดีกว่า Inc.asp รวมไฟล์ไว้ด้วย ไลบรารีฟังก์ชันหลัก
2, Surveycode.asp แสดงโปรแกรมแบบสอบถาม ใช้สคริปต์ในหน้าเว็บหลักเพื่อเรียกมัน
3.โปรแกรมรายการแบบสอบถามsurvey.asp แสดงสถานะการสอบสวนทั้งหมด
4. Survey_vote.asp เป็นโปรแกรมที่แสดงผลทางสถิติของการสำรวจ นำพารามิเตอร์มาเพื่อแสดงคำถามที่กำลังสอบสวน
5. โปรแกรมจัดการ Survey_manage.asp
ที่นี่ เราได้ข้ามการออกแบบเพจไปแล้ว เนื่องจากการออกแบบสไตล์ไม่ใช่สิ่งที่เรากำลังพูดถึง ดังนั้นเกี่ยวกับสไตล์ เลย์เอาต์ CSS และอื่นๆ ของหน้าเว็บ โปรดออกแบบด้วยตัวเอง
5. โฟลว์ไฟล์:
ขั้นแรกให้จดโฟลว์หลักของโปรแกรม ซึ่งจะทำให้ง่ายต่อการแก้ไข ขยาย และย้ายในอนาคต สิ่งที่สำคัญกว่าคือรูทีนย่อยใดที่จะเขียนในโปรแกรม และวิธีการจัดเรียงรูทีนย่อยเหล่านี้
1. Surveycode.asp แสดงแบบสำรวจ
<%
'' รับพารามิเตอร์สตริงการสืบค้น id แสดงถึงหมายเลขการสำรวจ
''กำหนดความถูกต้องของพารามิเตอร์
''ตรวจสอบว่าการสอบสวนอยู่ภายในระยะเวลาที่ถูกต้องหรือไม่
''อ่านคำถามแบบสำรวจ พิมพ์
''ส่งออกคำตอบแบบสำรวจและสร้างแบบฟอร์มการสำรวจ
''ปิดฐานข้อมูลและตาราง
%>
2. Survey.asp แสดงสถานะการสำรวจทั้งหมด
<%
''อ่านฐานข้อมูล
-
<html>
''แสดงสถานะแบบสำรวจทั้งหมดและเพิ่มลิงก์
</html>
3. Survey_vote.asp แสดงผลทางสถิติ
มีสองฟังก์ชันที่นี่ ฟังก์ชันแรกคือแสดงโดยไม่ต้องส่ง และอีกฟังก์ชันคือแสดงสถิติหลังจากส่งคำตอบ แล้วจึงแสดงผลลัพธ์ หากไม่มีพารามิเตอร์ก็จะเป็นวิธีแรก นอกจากนี้ยังสามารถทำได้ในสองไฟล์
-
'' รับพารามิเตอร์ id หมายถึงหมายเลขการสำรวจ ข้อมูลทั้งหมดมาจากแบบฟอร์ม
''พิจารณาว่ามีพารามิเตอร์หรือไม่ ถ้ามี ให้ทำสถิติก่อน
''ถ้าไม่ มันก็จะถูกแสดงโดยตรง
''โปรแกรมย่อยทางสถิติ
-
<html>
''แสดงรูทีนย่อย
</html>
4. โปรแกรมการจัดการ Survey_manage.asp.
ส่วนการจัดการมีความซับซ้อนมากขึ้นและจำเป็นต้องใช้งานฟังก์ชันเพิ่มเติม ก่อนอื่นมาแสดงรายการฟังก์ชั่นการจัดการกันก่อน:
1) การเข้าสู่ระบบของผู้ดูแลระบบ การจัดการสามารถทำได้หลังจากเข้าสู่ระบบเท่านั้น
2) ออกจากระบบ ออกอย่างปลอดภัยเมื่อจัดการเสร็จแล้ว
การจัดการแบบสำรวจประกอบด้วย:
3) เพิ่มแบบสำรวจ เพิ่มคำตอบแบบสำรวจด้วย
4) แก้ไขแบบสำรวจ แก้ไขเนื้อหา เวลา ประเภท เนื้อหาของคำตอบแบบสำรวจ เพิ่ม ลบ
5) ลบแบบสำรวจ ไม่สามารถลบแบบสำรวจที่กำลังดำเนินอยู่ได้
ออกแบบกระบวนการสำหรับฟังก์ชันเหล่านี้
<%
'' รับพารามิเตอร์ การกระทำหมายถึงการกระทำที่สอดคล้องกับฟังก์ชันข้างต้น
''เปลี่ยนเส้นทางไปยังรูทีนย่อยที่เกี่ยวข้องตามการกระทำ
''รูทีนย่อยการเข้าสู่ระบบ
'' ออกจากรูทีนย่อยการเข้าสู่ระบบ
''ดำเนินการรูทีนย่อยของการเพิ่มคำถามแบบสำรวจ
''ดำเนินการรูทีนย่อยของการเพิ่มคำตอบแบบสำรวจ
''ดำเนินการรูทีนย่อยการสำรวจที่แก้ไขแล้วเพื่อแก้ไขคำถามและคำตอบร่วมกัน
''ดำเนินการลบรูทีนย่อยคำถามแบบสำรวจ
''ดำเนินการรูทีนย่อยการลบคำตอบแบบสำรวจ
<html>
-
'' ตรวจสอบว่าคุณได้เข้าสู่ระบบแล้วหรือไม่ หากไม่ได้แสดงแบบฟอร์มเข้าสู่ระบบ
''แสดงแบบฟอร์มที่เกี่ยวข้องตามการกระทำ
'' แสดงรูทีนย่อยการสำรวจทั้งหมด
'' แสดงรูทีนย่อยการสำรวจเดี่ยว คำถามและคำตอบจะแสดงพร้อมกัน
'' แสดงรูทีนย่อยการสืบสวนที่เพิ่มเข้ามา
'' แสดงแบบฟอร์มเข้าสู่ระบบ
-
</html>
6. การเขียนโค้ด
หลังจากการออกแบบกระบวนการเสร็จสิ้น การเขียนโค้ดจะถูกจัดระเบียบมากขึ้น มาเริ่มกันง่ายๆ ก่อนที่จะเขียนโค้ด เราจำเป็นต้องป้อนบันทึกบางส่วนในฐานข้อมูลเพื่อทำการทดสอบ ขั้นแรกให้เพิ่มคำถามแบบสำรวจ คำตอบแบบสำรวจหลายข้อ และป้อนข้อมูลทางสถิติด้วยตนเอง
ขั้นแรกเรามาเขียน Surveycode.asp เพื่อแสดงแบบฟอร์มการสำรวจไฟล์นี้จำเป็นต้องถูกเรียกในหน้าอื่น ๆ ดังนั้นเราจึงเขียนมันในลักษณะผสมระหว่าง JS และ VBS เมื่อโทร คุณสามารถใส่ไว้ในแบบฟอร์มและใช้คำสั่งต่อไปนี้:
<SCRIPT Language="JavaScript" SRC="surveycode.asp?id=1"></SCRIPT>
ปฏิบัติตามกระบวนการข้างต้น ก่อนที่จะแสดงแบบฟอร์ม ขั้นแรก ตรวจสอบว่าการสอบสวนมีอยู่และอยู่ระหว่างดำเนินการหรือไม่ นอกจากนี้ จะต้องส่งพารามิเตอร์ที่ซ่อนอยู่ในแบบฟอร์มเพื่อแสดงหมายเลขคำถาม (id) ของแบบสำรวจ เมื่อส่งคำตอบแล้ว คำตอบคือหมายเลข vote_no
ชื่อไฟล์ explorecode.asp
<!--#include file="inc. เอเอสพี" -->
-
id=request.querystring("id")
ถ้า id<>"" แล้วก็ ''ถ้ามีพารามิเตอร์
opendb my '' เชื่อมต่อกับฐานข้อมูล
sql = "select * จากแบบสำรวจโดยที่ Survey_id = "& id ''คำสั่งแบบสอบถาม
ค้นหาฐานข้อมูล my, sql, rs '' Query
ถ้าไม่ใช่ rs.eof แล้ว ''หากมีบันทึกการสอบสวนนี้
question=rs("survey_question") ''อ่านคำถาม
Surveytype=rs("survey_type") ''อ่านประเภทคำตอบ
stime=rs("survey_stime") ''อ่านเวลาเริ่มต้น
etime=rs("survey_etime") ''อ่านเวลาสิ้นสุด
ตู้เสื้อผ้า rs ''ปิดโต๊ะ
ถ้า stime<now() และ etime>now() ดังนั้น ''หากอยู่ระหว่างการสอบสวน
''กรอกแบบฟอร์มสำรวจด้านล่าง
''ขั้นแรกให้พิมพ์แบบฟอร์มและคำถาม จากนั้นส่งแบบฟอร์มไปที่ Survey_vote.asp
-
document.write("<form action=''survey_vote.asp'' target=''_blank'' method=''post''>");
document.write("<table border=''1'' cellpadding=''2'' cellspacing=0'' bordercolorligh=''#000000''");
document.write(" bordercolordark=''#ffffff'' width=''100%'' align=''center''><tbody>");
document.write("<tr><td colspan=''2'' align=''center''><b><%=server.htmlencode(คำถาม)%></b></td></tr >");
-
sql="select vote_no,vote_answer จาก Survey_vote โดยที่ vote_id="&id ''SQL เพื่อสอบถามคำตอบ
ค้นหาได้ my,sql,rs ''ดำเนินการค้นหา
ถ้าไม่ใช่ rs.eof แล้ว ''หากมีคำตอบ ให้ส่งออกมัน
สำหรับ i=1 ถึง rs.recordcount
-
document.write("<tr><td align=''right''><input name=''res'' type=''");
-
ถ้าแบบสำรวจให้เลือก ''ตัดสินประเภท แสดงตัวเลือกเดียวหรือหลายตัวเลือก
-
document.write("ช่องทำเครื่องหมาย");
<%อื่น%>
document.write("วิทยุ");
<%end ถ้า ''ประโยคต่อไปนี้แสดงข้อความของคำตอบและค่าที่ส่ง (vote_no)%>
document.write("'' value=<%=rs("vote_no")%>></td><td><%=rs("vote_answer")%></td></tr>");
-
rs.movenext
ต่อไป
''ประโยคต่อไปนี้แสดงพารามิเตอร์ที่ซ่อนอยู่และส่งผ่านหมายเลขคำถาม (id)
'' และใช้ฟังก์ชัน JS เพื่อกำหนดลิงก์หลังจากคลิกเพื่อดู
-
document.write("<tr><td colspan=''2'' align=''center''><input type=''hidden'' name=''id'' value=''<%=id% >''>");
document.write("<input type=''submit'' class=button value=''vote''> ");
document.write("<input type=button class=button value=''View'' onclick=''jump(<%=id%>)''>");
document.write("</td></tr></tbody></table></form>");
ฟังก์ชั่นกระโดด (id) {
window.open("survey_vote.asp?id="+id,"แบบสำรวจ")
-
-
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุดถ้า
ตู้เสื้อผ้า
ปิดของฉันแล้ว
สิ้นสุดถ้า
%>
หลังจากที่ Surveycode.asp เสร็จสมบูรณ์ เราได้กำหนดประเด็นต่อไปนี้ในการใช้งาน:
1. ใน Survey_vote.asp หากรหัสพารามิเตอร์การสืบค้นมีค่า ผลลัพธ์จะถูกดู
2. ใน Survey_vote.asp หากเป็นพารามิเตอร์ของฟอร์ม หากรหัสมีค่า จะต้องดำเนินการทางสถิติก่อน
3. ใน Survey_vote.asp พารามิเตอร์แบบฟอร์มที่ส่งคือหมายเลขคำตอบ vote_no
7. ผลลัพธ์ทางสถิติ
ขั้นแรก เราจะดำเนินการแสดงผลทางสถิติ Survey_vote ให้เสร็จสิ้น ซึ่งมีค่ามากที่สุด เกี่ยวข้องอย่างใกล้ชิดกับไฟล์ explorecode.asp .asp ในตอนท้ายของบทความที่แล้ว เราได้อธิบายพารามิเตอร์บางตัวที่กำหนดใน Surveycode.asp แล้ว
ผลลัพธ์ทางสถิติ Survey_vote.asp
<!--#include file="inc.asp" -->
<html>
<หัว>
<title>สถิติการสำรวจ</title>
<link rel="stylesheet" href="main.css" type="text/css">
</หัว>
<ร่างกาย>
-
''ในประโยคที่แล้ว ให้เพิ่มไฟล์ include และอ้างอิงฟังก์ชันก่อน
id=request.querystring("id") ''รับรหัสพารามิเตอร์สตริงการสืบค้น
opendb my '' เชื่อมต่อกับฐานข้อมูล
if id="" แล้วก็ ''ถ้าไม่ใช่ แสดงว่าคุณไม่ได้ดูผลลัพธ์โดยตรง
id=request.form("id") ''รับรหัสพารามิเตอร์แบบฟอร์ม
if id<>"" ดังนั้น ''หากมีค่าจะต้องนับก่อน
Surveycount() ''เรียกรูทีนย่อยทางสถิติ
สิ้นสุดถ้า
สิ้นสุดถ้า
ถ้า id<>"" แล้ว
disp_survey() ''ไม่ว่าจะเป็นอะไรก็ตามผลลัพธ์ก็จะถูกแสดงในตอนท้าย
สิ้นสุดถ้า
Closedb ของฉัน '' ปิดฐานข้อมูล
'' ----- รูทีนย่อยทางสถิติ -----
จำนวนการสำรวจย่อย ()
if session("survey_ok")="" แล้ว ''หากคุณยังไม่ได้โหวต
no=request.form("res") ''รับหมายเลขคำตอบ
ถ้าไม่ใช่<>"" แล้ว
''กำหนดคำสั่ง SQL เพื่อเพิ่มจำนวนคำตอบที่ส่งมา 1
sql="update Survey_vote set vote_count=vote_count+1 โดยที่ vote_no= ใน (" & ไม่ใช่ &")"
my.execute sql
สิ้นสุดถ้า
เซสชั่น ("survey_ok") = "ตกลง"
สิ้นสุดถ้า
จบย่อย
''------------------
''---รูทีนย่อยแสดงผล---
sub disp_survey()
''กำหนดคำสั่ง SQL เพื่อรับคำถามแบบสำรวจ
sql = "เลือก Survey_question จากการสำรวจโดยที่ Survey_id = " & id
ค้นหาได้ my,sql,rs ''ดำเนินการค้นหา
question=rs("survey_question") ''บันทึกคำถามเป็นคำถาม
ตู้เสื้อผ้า rs ''ปิดโต๊ะ
''กำหนดคำสั่ง SQL และรับจำนวนคำตอบทั้งหมด
sql="เลือกผลรวม(vote_count) เป็นผลรวมจาก Survey_vote โดยที่ vote_id="& id
ค้นหาได้ my, sql, rs
รวม=rs("รวม")
closetable rs ''close table
'' กำหนดคำสั่ง SQL และรับส่วนของข้อความคำตอบและหมายเลขโหวตทั้งหมด
sql="เลือก vote_answer,vote_count จาก Survey_vote โดยที่ vote_id=" & id
ค้นหาได้ my,sql,rs ''ดำเนินการค้นหา
''ต่อไปนี้ใช้ตารางเพื่อส่งออกตารางทางสถิติ
-
<ความกว้างของตาราง = "500" border = "1" align = "center" cellpadding = "2" cellspacing = "0"
bordercolorligh="#000000" bordercolordark="#ffffff">
<tr>
<td colspan="4" align="center"><b>สถิติการสำรวจ</b></td>
</tr>
<tr>
<td colspan="4"><b>คำถามแบบสำรวจ: <%=question%></b></td>
</tr>
<tr>
<td width="150" align="center" height="20">ตอบ</td>
<td width="150" align="center" height="20">ผู้ออกมาใช้สิทธิ์ลงคะแนนเสียง</td>
<td width="100" align="center" height="20">สัดส่วน</td>
<td width="100" align="center" height="20">จำนวนโหวต</td>
</tr>
<% ทำในขณะที่ไม่ใช่ rs.eof
ถ้าทั้งหมด=0 แล้ว
เปอร์เซ็นต์=0 ''หากไม่มีผู้ใดลงคะแนน เปอร์เซ็นต์จะเป็น 0
อื่น
เปอร์เซ็นต์=int(rs("vote_count")/total*10,000)/100 ''คำนวณเปอร์เซ็นต์
สิ้นสุดถ้า
-
<tr>
<td width="150" align="center"><%=rs("vote_answer")%></td>
<td width="150" align="ซ้าย">
<table border="0" width="<%=percent%>" bgcolor="#CCCC00" height="10">
<tr>
<td></td>
</tr>
</ตาราง>
</td>
<td width="100" align="center"><%=percent%>%</td>
<td width="100" align="center"><%=rs("vote_count")%></td>
</tr>
-
rs.movenext
วนซ้ำ
-
<tr>
<td colspan="4"> มีผู้โหวต <%=total%> ณ วันที่ <%=now()%>
<a href="javascript:window.close()">ปิดหน้าต่าง</a>
</td>
</tr>
</ตาราง>
-
ตู้เสื้อผ้า rs ''ปิดโต๊ะ
จบย่อย
-
-
</ร่างกาย>
</html>
ในกระบวนการแสดงการลงคะแนน เราใช้ตัวแปรเซสชัน explore_ok เพื่อระบุว่ามีการลงคะแนนหรือไม่ นอกจากนี้ สถิติการแสดงผลนี้ยังอ้างอิงถึงไฟล์ CSS เพื่อควบคุมรูปแบบของตาราง คุณสามารถเพิ่มได้เองตามความต้องการของคุณเอง
8. แสดงรายการสถานะของแบบสำรวจทั้งหมด
ตอนนี้มาทำแบบสำรวจให้เสร็จสิ้น หน้าที่หลักคือการแสดงรายการสถานะของแบบสำรวจทั้งหมด รวมถึง:
1. คำถามแบบสำรวจที่เชื่อมโยงกับหน้าแบบฟอร์มการลงคะแนนเสียง (เขียนไว้ในหน้านี้โดยตรง)
; เวลาเริ่มต้นของการสำรวจ
3. เวลาสิ้นสุดของการสำรวจ
4. สถานะของการสำรวจ: ยังไม่เริ่ม อยู่ในระหว่างดำเนินการ สิ้นสุดแล้ว
5. จำนวนคะแนนเสียงในการสำรวจ
6. ประเภทของการสำรวจ เดี่ยว ตัวเลือกหรือหลายตัวเลือก
7. ให้ลิงก์เพื่อดูผลการลงคะแนน
ตามข้อกำหนดเหล่านี้เพียงสอบถามตารางที่เกี่ยวข้องเช่นการรับจำนวนโหวตทั้งหมดคำสั่ง SQL จะถูกเขียนเป็น Survey_vote งูเห่าด้านบน
แสดงรายการสถานะของแบบสำรวจทั้งหมด explore.asp
<!--#include file="inc.asp" -->
<html>
<หัว>
<title>รายการแบบสำรวจออนไลน์</title>
<link rel="stylesheet" href="main.css" type="text/css">
</หัว>
<ร่างกาย>
-
id=request.querystring("id") ''รับพารามิเตอร์
ถ้า id<>"" แล้ว ''หากมีพารามิเตอร์ ให้แสดงแบบฟอร์มสำรวจนี้
response.write "<SCRIPT Language=''JavaScript'' SRC=''surveycode.asp?id="&id&"''></SCRIPT>"
else '' มิฉะนั้น ให้เรียกรูทีนย่อยเพื่อแสดงสถานะ
ความไม่ลงรอยกัน()
สิ้นสุดถ้า
''----- รูทีนย่อยแสดงสถานะ ----
ความไม่ลงรอยกันย่อย ()
opendb my '' เชื่อมต่อกับฐานข้อมูล
opentable my,"survey",rs ''เปิดตารางโดยตรง
''ข้อมูลต่อไปนี้ใช้ตารางเพื่อแสดงแต่ละเรคคอร์ด
''แสดงส่วนหัวก่อน
-
<ความกว้างของตาราง = "760" border = "1" cellspacing = "0" cellpadding = "2"
align="center" bordercolorligh="#000000" bordercolordark="#ffffff">
<tr>
<td colspan="8" align="center"><b>รายการแบบสำรวจออนไลน์</b></td>
</tr>
<tr>
<td width="50" align="center" height="20">ตัวเลข</td>
<td width="200" align="center" height="20">คำถามแบบสำรวจ</td>
<td width="50" align="center" height="20">ประเภท</td>
<td width="140" align="center" height="20">เวลาเริ่มต้น</td>
<td width="140" align="center" height="20">เวลาสิ้นสุด</td>
<td width="50" align="center" height="20">สถานะ</td>
<td width="80" align="center" height="20">จำนวนโหวต</td>
<td width="50" align="center" height="20">ดู</td>
</tr>
-
''ส่งออกแต่ละบันทึกด้านล่าง
ทำในขณะที่ไม่ใช่ rs.eof
''อ่านแต่ละช่องก่อน
id=rs("แบบสำรวจ_id")
คำถาม=rs("แบบสำรวจ_คำถาม")
''ประเภทการอ่าน.
ถ้า rs("survey_type") แล้ว
stype="การเลือกหลายรายการ"
อื่น
stype="ทางเลือกเดียว"
สิ้นสุดถ้า
stime=rs("แบบสำรวจ_stime")
etime=rs("แบบสำรวจ_etime")
''สถานะการตัดสิน
ถ้าตอนนี้()<stimeแล้ว
stat="ไม่ได้เริ่มต้น"
อื่น
ถ้าตอนนี้<เวลานั้นแล้ว
สถิติ = "อยู่ระหว่างดำเนินการ"
อื่น
สถิติ = "สิ้นสุดแล้ว"
สิ้นสุดถ้า
สิ้นสุดถ้า
''กำหนดคำสั่ง SQL และรับจำนวนคำตอบทั้งหมด
sql="เลือกผลรวม(vote_count) เป็นผลรวมจาก Survey_vote โดยที่ vote_id="& id
ค้นหาตาราง my, sql, tmprs '' แบบสอบถาม
รวม=tmprs("รวม")
closeable tmprs '' ปิดตาราง
''ส่งออกบันทึกด้านล่าง
-
<tr>
<td align="center" height="20"><%=id%></td>
<td ความสูง = "20">
<a href="survey.asp?id=<%=id%>"><%=question%></a>
</td>
<td align="center" height="20"><%=stype%></td>
<td align="center" height="20"><%=stime%></td>
<td align="center" height="20"><%=etime%></td>
<td align="center" height="20"><%=stat%></td>
<td align="center" height="20"><%=รวม%></td>
<td align="center" height="20">
<a href="survey_vote.asp?id=<%=id%>" target="_blank">ดู</a>
</td>
</tr>
-
rs.movenext ''ย้ายไปยังรายการถัดไป วนซ้ำ
วนซ้ำ
-
</ตาราง>
-
ตู้เสื้อผ้า rs ''ปิดโต๊ะ
Closedb ของฉัน '' ปิดฐานข้อมูล
จบย่อย
-
-
</ร่างกาย>
</html>
9. การจัดการแบ็กเอนด์
ในหน้าการจัดการแบ็กเอนด์ Survey_manage.asp เราได้แสดงรายการฟังก์ชันการจัดการที่ต้องการบรรลุแล้ว ขั้นตอนการจัดการคือการแสดงการสืบสวนทั้งหมดก่อน สำหรับการสืบสวนที่ยังไม่ได้เริ่มต้น คุณสามารถแก้ไขหรือลบได้ สำหรับการสืบสวนที่สิ้นสุดลง คุณสามารถลบได้ แต่ไม่สามารถแก้ไขได้สำหรับการสืบสวนที่กำลังดำเนินอยู่ คุณสามารถแก้ไขจุดสิ้นสุดเท่านั้น เวลา. ใช้การกระทำของพารามิเตอร์หนึ่งรายการเพื่อแสดงการกระทำ ความหมายมีดังนี้:
1. ไม่มีพารามิเตอร์ ระบุครั้งแรกที่เข้า, แสดงแบบฟอร์มเข้าสู่ระบบ
2, เข้าสู่ระบบ หมายถึง ดำเนินการเข้าสู่ระบบ
3, ออกจากระบบ หมายถึง ดำเนินการออกจากระบบ
4, showaddquestion หมายถึง แสดงแบบสำรวจเพิ่มเติม
5, showsurvey หมายถึง แสดงแบบสำรวจ
6, doaddsurvey หมายถึง ดำเนินการ การเพิ่มแบบสำรวจ
7 doaddanswer หมายถึง ดำเนินการ เพิ่มคำตอบ
8. dodelsurvey หมายถึง ลบแบบสำรวจ
9. dodelanswer หมายถึง ลบคำตอบ
10. domodify หมายถึง ปรับเปลี่ยนแบบสำรวจและคำตอบ