يجب أن يكون الجميع على دراية بالاستطلاعات عبر الإنترنت. يتم تقديم سؤال والعديد من الإجابات للمستخدمين لملءها، ثم يتم حفظ النتائج في قاعدة البيانات، ويتم إجراء الإحصائيات تلقائيًا، وأخيراً يتم تقديم رسم بياني إحصائي. في هذا العدد تابعوني وقم بعمل نظام استطلاعات الرأي عبر الإنترنت.
1. التصميم الوظيفي:
هل يحتاج مثل هذا النظام البسيط إلى التصميم الوظيفي؟ قد يجد بعض الأشخاص الأمر غريبًا، ولكن بعد قولي هذا، بغض النظر عن نوع النظام، إذا قمت بالتصميم الوظيفي أولاً، فيمكنك دائمًا الحصول على فهم أوضح للنظام. دعونا نلقي نظرة على ما يمكن أن تفعله الاستطلاعات عبر الإنترنت. لقد تم ذكر الوظيفة الأساسية أعلاه، وهي إعطاء سؤال وعدة إجابات، ثم إجراء الإحصائيات، وأخيراً إعطاء رسم بياني. وعلى هذا الأساس، يمكننا التفكير في إضافة فترة زمنية (فترة الصلاحية) إلى الاستطلاع. خلال هذه الفترة الزمنية، يكون الاستطلاع صالحًا بعد هذه الفترة، وسينتهي الاستطلاع تلقائيًا. بالإضافة إلى ذلك، يمكننا تحديد أنه يمكن للمستخدم إرسال الإجابات مرة واحدة فقط في كل مرة. إذا كنت تريد أن تكون أكثر تقييدًا، يمكنك تحديد أن عنوان IP يمكنه إرسال إجابة مرة واحدة فقط، ومع ذلك، قد يسمح هذا لشخص واحد فقط في مقهى الإنترنت بالإرسال. بالنسبة للأسئلة الموجودة في الاستطلاع، قد يكون بعضها أسئلة ذات اختيار واحد والبعض الآخر قد يكون أسئلة متعددة الخيارات. وأخيرا، دعونا نتحدث عن الرسم البياني الإحصائي، في الرسم البياني الإحصائي يجب أن تظهر الإجابات، وعدد الناخبين لكل إجابة، ونسبة الأصوات لكل إجابة. بشكل عام، يكفي استخدام مخطط أفقي، وهو أسهل في التنفيذ بالطبع، إذا كنت تريد تغييره إلى مخطط عمودي، فيمكنك القيام بذلك أيضًا.
الآن بناءً على ما سبق، يتم تلخيص وظائف الاستطلاع عبر الإنترنت على النحو التالي:
1. يتم حفظ البيانات في قاعدة بيانات ACCESS 2000؛
2. يمكن لكل مستخدم التصويت مرة واحدة في كل زيارة
3. يتم تقديم وعرض إحصائيات كل استطلاع الرسوم البيانية الإحصائية
4. كل استطلاع له تاريخ انتهاء الصلاحية وينتهي تلقائيا بعد انتهاء الصلاحية. يمكن عرض نتائج الاستطلاعات المكتملة فقط.
5. يمكن للمسؤولين إضافة استطلاعات وتعديل إجابات الاستطلاع (إضافة، تعديل، حذف، تعديل النوع).
6. بالنسبة للاستطلاعات التي انتهت، يمكن للمسؤولين حذف الاستطلاع فقط ولكن لا يمكنهم تعديل الإجابات.
7. يوجد مسؤول واحد فقط (مستخدم واحد)
2. تصميم قاعدة البيانات
الآن لنصمم قاعدة البيانات وفقًا للمتطلبات الوظيفية، يجب أن يكون هناك ثلاثة جداول على الأقل، أحدهما هو جدول المسؤول، والثاني هو جدول المسح، والجدول الثاني هو جدول المسح. والثالث هو جدول نتائج المسح. اسم ملف قاعدة البيانات هو Survey.mdb ويمكن تغييره إلى .asp. إذا كان الأمر كذلك، الرجاء إجراء التعديلات المقابلة في برنامج ASP.
الجدول 1. اسم جدول جدول المسؤول: الإدارة
-------------------------------------------------- ---------------
وصف طول نوع الحقل
-------------------------------------------------- ---------------
Manage_id الترقيم التلقائي - غير مستخدم هنا، سيتم توسيعه في المستقبل
Manage_username نص 15 اسم مستخدم المسؤول
Manage_password Text 15 كلمة مرور المسؤول
-------------------------------------------------- ---------------
بعد إنشاء جدول الإدارة، قم بإضافة سجل جديد واملأ اسم المستخدم وكلمة المرور الخاصين بالمسؤول. هنا تقوم بملء
جدول xmxoxo 2. اسم جدول الاستطلاع: الاستطلاع
-------------------------------------------------- ---------------
وصف طول نوع الحقل
-------------------------------------------------- ---------------
ترقيم تلقائي Survey_id - تزايدي، مفتاح أساسي، مفهرس، بدون تكرار
Survey_question text 255 سؤال استبيان
Survey_type سواء - النوع، لا: اختيار واحد نعم: اختيار متعدد
تاريخ وقت المسح - تاريخ طويل، وقت البدء
تاريخ وقت المسح - تاريخ طويل، وقت الانتهاء
-------------------------------------------------- ---------------
الجدول 3. نموذج نهاية الاستطلاع اسم الجدول: Survey_vote
------------------------- ------ ----------------------------------------
وصف طول نوع الحقل
-------------------------------------------------- ---------------
التصويت_لا الترقيم التلقائي - زيادة، المفتاح الأساسي، مفهرسة وعدم الازدواجية
voice_id عدد صحيح طويل - مفهرس ومتكرر، العلامة العشرية 0
voice_answer نص 100 إجابة للاستبيان
voice_count طويل - عدد الأصوات
-------------------------------------------------- ---------------
من بينها، يوجد علاقة متعدد بواحد بين جدول Survey_vote وحقل المعرف الخاص بجدول الاستطلاع. ليس من الضروري إقامة هذه العلاقة، لكن إقامة العلاقة سيجعل الأفكار أكثر وضوحا.
3.لا توجد العديد من الوظائف المستخدمة هنا
لتضمين الملفات
، فهي تستخدم بشكل أساسي لتشغيل قاعدة البيانات. إذا كنت تريد منع HTML والرموز الأخرى عند الإدخال، فما عليك سوى استخدام server.htmlencode لمعالجتها، لذلك ليست هناك حاجة إلى وظيفة خاصةللتعامل معها. يمكننا الاستمرار في استخدام الملفات المضمنة في سلسلة "تعلم مني" في المقالة السابقة "تعلم مني لإنشاء قائمة شجرة".
ملف الوظيفة المشتركة، اسم الملف: inc.asp
<%
''************************************************************************************************************************************************************************ *******************
''وظيفة ASP لقاعدة البيانات المشتركة
''************************************************************************************************************************************************************************ *******************
'' ثوابت قاعدة البيانات
اسم قاعدة البيانات = "survey.mdb" ''اسم قاعدة البيانات، إذا قمت بتغيير الاسم، فقط قم بتعديله هنا
''************************************************************************************************************************************************************************ *******************
''افتح قاعدة البيانات
قاعدة بيانات فرعية (اتصال)
تعيين الاتصال=server.CreateObject("ADODB.connection")
Connect.ConnectionString="DRIVER={برنامج تشغيل Microsoft Access (*.mdb)}; DBQ=" &_
server.MapPath (اسم قاعدة البيانات)
Connect.Open strconn
النهاية الفرعية
''************************************************************************************************************************************************************************ *******************
''إغلاق قاعدة البيانات
فرعي مغلق ب (اتصال)
الاتصال. إغلاق
تعيين الاتصال = لا شيء
النهاية الفرعية
''************************************************************************************************************************************************************************ *******************
''افتح جدول واحد للقراءة
جدول مفتوح فرعي (اتصال، tbname، myrs)
تعيين myrs=server.createobject("ADODB.recordset")
rssql="اختر * من" & tbname
myrs.open rssql، الاتصال، 1،1
النهاية الفرعية
''************************************************************************************************************************************************************************ *******************
''أغلق الجدول المؤقت
خزانة فرعية (rs)
rs. Close
تعيين RS=لا شيء
النهاية الفرعية
''************************************************************************************************************************************************************************ *******************
'' قاعدة بيانات الاستعلام
جدول البحث الفرعي (الاتصال، SQL، RS)
مجموعة rs=server.createobject("ADODB.recordset")
rs.open SQL، الاتصال، 1،1
النهاية الفرعية
''*************************************************** *********************
''الاستعلام وتغيير قاعدة البيانات
جدول التغيير الفرعي (الاتصال، SQL، RS)
مجموعة rs=server.createobject("ADODB.recordset")
rs.open SQL، الاتصال، 1،3
النهاية الفرعية
''*************************************************** *********************
'' عرض المعلومات لتصحيح الأخطاء
فرعي ث (رسالة)
الرد.اكتب رسالة
النهاية الفرعية
''*************************************************** *********************
'' مقاطعة البرنامج لتصحيح الأخطاء
توقف المستخدم الفرعي ()
Response.end
النهاية الفرعية
%>
4. تصميم المستندات
وفقًا للتفكير التقليدي، نقوم دائمًا بتصميم الاستطلاعات عبر الإنترنت في ثلاثة أجزاء، الأول هو عرض الاستبيان؛ والثاني هو عرض النتائج الإحصائية للاستطلاع؛ والثالث هو إدارة الخلفية. وفي التطبيقات العملية سنجد أن الاستبيان غالباً ما يتم عرضه على صفحة ويب معينة، وعادةً ما يتم عرض النتائج في نافذة منبثقة. يتم توجيه إدارة الواجهة الخلفية عبر رابط آخر أو نموذج تسجيل دخول. من أجل استخدام الاستطلاع عبر الإنترنت بشكل أكثر ملاءمة، قمنا بكتابة جزء عرض الاستبيان كبرنامج نصي JS، بحيث يمكن لصفحة الويب التي تحتاج إلى عرض الاستبيان الاتصال بها بحرية من خلال الرجوع إلى البرنامج النصي. حسنًا، دعونا نلقي نظرة على تصميم الملف
1. يتضمن Inc.asp الملف. مكتبة الوظيفة الرئيسية
2، Surveycode.asp تعرض برنامج الاستبيان. استخدم برنامجًا نصيًا في صفحة الويب الرئيسية للاتصال به.
3. برنامج قائمة الاستبيانات Survey.asp. يسرد حالة جميع التحقيقات.
4. Survey_vote.asp هو برنامج يعرض النتائج الإحصائية للاستطلاع. إحضار المعلمات لتمثيل الأسئلة قيد التحقيق.
5. برنامج إدارة Survey_manage.asp.
هنا، لقد تخطينا تصميم الصفحة، لأن تصميم النمط ليس هو ما نتحدث عنه، لذا فيما يتعلق بالنمط والتخطيط وCSS وما إلى ذلك لصفحة الويب، يرجى تصميمها بنفسك.
5. تدفق الملف:
قم أولاً بتدوين التدفق الرئيسي للبرنامج، والذي يمكن أن يسهل تعديله وتوسيعه وزرعه في المستقبل. والأهم هنا هو ما هي الإجراءات الفرعية التي يجب كتابتها في البرنامج وكيفية ترتيب هذه الإجراءات الفرعية.
1. Surveycode.asp يعرض نموذج الاستطلاع
<%
''احصل على معلمة سلسلة الاستعلام، يمثل المعرف رقم الاستطلاع
'' تحديد صحة المعلمات
'' تحديد ما إذا كان التحقيق ضمن فترة الصلاحية.
''اقرأ سؤال الاستطلاع، اكتب
''إخراج إجابات الاستطلاع وإنشاء نموذج الاستطلاع
''إغلاق قاعدة البيانات والجداول
%>
2. Survey.asp يعرض كافة حالات الاستطلاع
<%
''اقرأ قاعدة البيانات
%>
<أتش تي أم أل>
''إظهار كافة حالة الاستطلاع وإضافة الروابط
</html>
3. Survey_vote.asp يعرض النتائج الإحصائية.
هناك وظيفتان هنا، إحداهما العرض بدون إرسال، والأخرى إجراء الإحصائيات بعد إرسال الإجابة، ثم عرض النتيجة. إذا لم تكن هناك معلمات، فهذه هي الطريقة الأولى. ويمكن أيضا أن يتم ذلك في ملفين.
<%
''الحصول على المعلمات. يمثل المعرف رقم المسح. جميع البيانات تأتي من النموذج.
''تحديد ما إذا كانت هناك معلمات، إذا كان الأمر كذلك، قم بإجراء الإحصائيات أولاً
''إذا لم يكن الأمر كذلك، فسيتم عرضه مباشرة.
'' روتين فرعي إحصائي
%>
<أتش تي أم أل>
'' عرض الروتين الفرعي
</html>
4. برنامج إدارة Survey_manage.asp.
الجزء الإداري أكثر تعقيدًا ويحتاج إلى تنفيذ المزيد من الوظائف. لندرج أولاً وظائف الإدارة:
1) تسجيل دخول المسؤول. لا يمكن أن تتم الإدارة إلا بعد تسجيل الدخول
2) تسجيل الخروج. الخروج بأمان عند الانتهاء من الإدارة.
إدارة الاستطلاعات تشمل:
3) إضافة استطلاع. قم أيضًا بإضافة إجابات الاستطلاع
4) تعديل الاستطلاع. تعديل المحتوى والوقت والنوع ومحتوى إجابات الاستطلاع وإضافة وحذف
5) حذف الاستطلاع. لا يمكن حذف الاستطلاع الجاري.
تصميم عمليتها لهذه الوظائف
<%
''الحصول على المعلمات. الإجراء يمثل الإجراء المطابق للوظائف المذكورة أعلاه.
'' أعد التوجيه إلى الروتين الفرعي المقابل وفقًا للإجراء
'' تسجيل الدخول روتين فرعي
''الخروج من الروتين الفرعي لتسجيل الدخول
''تنفيذ الروتين الفرعي لإضافة أسئلة الاستطلاع
''تنفيذ الروتين الفرعي لإضافة إجابات الاستطلاع
''قم بتنفيذ الروتين الفرعي للمسح المعدل لتعديل الأسئلة والأجوبة معًا
'' تنفيذ حذف الروتين الفرعي لسؤال الاستطلاع
''تنفيذ الإجراء الفرعي لإجابة استطلاع الحذف
<أتش تي أم أل>
<%
'' تحديد ما إذا كنت قد قمت بتسجيل الدخول، وإذا لم يكن الأمر كذلك، فاعرض نموذج تسجيل الدخول.
''عرض النموذج المقابل بناءً على الإجراء
''إظهار كافة الإجراءات الفرعية للاستطلاع
''يظهر روتين فرعي واحد للاستطلاع. يتم عرض الأسئلة والأجوبة معا
''إظهار الروتين الفرعي للتحقيق المضافة.
''إظهار نموذج تسجيل الدخول
%>
</html>
6. كتابة التعليمات البرمجية
بعد الانتهاء من تصميم العملية، ستكون كتابة التعليمات البرمجية أكثر تنظيماً. لنبدأ بسيطة. قبل كتابة الكود، نحتاج إلى إدخال بعض السجلات في قاعدة البيانات للاختبار. قم أولاً بإضافة سؤال استطلاع، والعديد من إجابات الاستطلاع، ثم أدخل بعض المعلومات الإحصائية يدويًا.
لنكتب أولاً Surveycode.asp لعرض نموذج الاستطلاع. يجب استدعاء هذا الملف في صفحات أخرى، لذلك نكتبه بطريقة مختلطة بين JS وVBS. عند الاتصال، يمكنك وضعه في نموذج واستخدام العبارة التالية:
<SCRIPT Language="JavaScript" SRC="surveycode.asp?id=1"></SCRIPT>
اتبع العملية المذكورة أعلاه، قبل عرض النموذج أولاً تحديد ما إذا كان التحقيق موجودًا وجاريًا. بالإضافة إلى ذلك، يجب إرسال معلمة مخفية في النموذج لتمثيل رقم (معرف) السؤال الخاص بالاستطلاع. عند إرسال الإجابة، يكون رقم الإجابة voice_no
اسم الملف Surveycode.asp
<!--#include file="inc. أسب" -->
<%
معرف=request.querystring("id")
إذا كان المعرف<>"" ثم ''إذا كانت هناك معلمات
opendb الخاص بي ''الاتصال بقاعدة البيانات
sql = "اختر * من الاستطلاع حيث Survey_id = "& id ''بيان الاستعلام
Searchtable my,sql,rs ''Query Database
إذا لم يكن rs.eof ثم ''إذا كان هناك سجل التحقيق هذا
question=rs("survey_question") ''اقرأ السؤال
Surveytype=rs("survey_type") ''اقرأ نوع الإجابة
stime=rs("survey_stime") ''اقرأ وقت البدء
etime=rs("survey_etime") ''اقرأ وقت النهاية
Closetable 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'' cellpacing=0'' bordercolorligh=''#000000''");
document.write(" bordercolordark=''#ffffff'' width=''100%'' align=''center''><tbody>");
document.write("<tr><td colspan=''2'' align=''center''><b><%=server.htmlencode(question)%></b></td></tr >");
<%
sql = "اختر التصويت_لا، التصويت_الإجابة من الاستطلاع_التصويت حيث التصويت_id = "&id ''SQL للاستعلام عن الإجابة
Searchtable my,sql,rs ''تنفيذ الاستعلام
إذا لم يكن rs.eof ثم ''إذا كان هناك إجابة، إخراجها
لأني = 1 إلى rs.recordcount
%>
document.write("<tr><td align=''right''><input name=''res'' type=''");
<%
إذا كان نوع الاستطلاع ثم ''احكم على النوع، أو اعرض تحديدًا واحدًا أو تحديدًا متعددًا
%>
document.write("مربع الاختيار");
<%آخر%>
document.write("راديو");
<%end if ''الجملة التالية تنتج نص الإجابة والقيمة المقدمة (vote_no)%>
document.write("'' value=<%=rs("vote_no")%>></td><td><%=rs("vote_answer")%></td></tr>");
<%
rs.movenext
التالي
''الجمل التالية تنتج معلمة مخفية وتمرير رقم السؤال (المعرف)
'' واستخدم وظيفة JS لتحديد الرابط بعد النقر للعرض
%>
document.write("<tr><td colspan=''2'' محاذاة=''center''><نوع الإدخال=''مخفي'' اسم=''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>");
وظيفة القفز (المعرف) {
window.open("survey_vote.asp?id="+id,"survey")
}
<%
نهاية إذا
نهاية إذا
نهاية إذا
com. Closetablers
مغلقb بلدي
نهاية إذا
%>
بعد اكتمال Surveycode.asp، حددنا النقاط التالية في التنفيذ:
1. في Survey_vote.asp، إذا كان معرف معلمة querystring يحتوي على قيمة، فسيتم عرض النتيجة؛
2. في Survey_vote.asp، إذا كانت معلمة النموذج إذا كان للمعرف قيمة، فيجب إجراء الإحصائيات أولاً؛
3. في Survey_vote.asp، تكون معلمة النموذج المرسل هي رقم الإجابة voice_no؛
7. النتائج الإحصائية
أولاً، سنكمل عرض النتائج الإحصائية Survey_vote، وهو الأكثر ترتبط ارتباطًا وثيقًا بملفات Surveycode.asp .asp. في نهاية المقالة السابقة، قمنا بشرح بعض المعلمات المحددة في Surveycode.asp.
النتائج الإحصائية Survey_vote.asp
<!--#include file="inc.asp" -->
<أتش تي أم أل>
<الرأس>
<title>إحصائيات الاستطلاع</title>
<link rel="stylesheet" href="main.css" type="text/css">
</الرأس>
<الجسم>
<%
'' في الجملة السابقة، قم أولاً بإضافة ملف التضمين والإشارة إلى الوظيفة.
id=request.querystring("id") ''احصل على معرف معلمة querystring
opendb الخاص بي ''الاتصال بقاعدة البيانات
إذا كان المعرف = "" ثم ''إذا لم يكن الأمر كذلك، فأنت لا تنظر إلى النتيجة مباشرة.
id=request.form("id") ''احصل على معرف معلمة النموذج
إذا كان المعرف<>"" ثم ''إذا كانت هناك قيمة، فيجب حسابها أولاً
Surveycount() ''استدعاء الروتين الفرعي الإحصائي
نهاية إذا
نهاية إذا
إذا كان المعرف<>"" إذن
disp_survey() '' بغض النظر عن ذلك، سيتم عرض النتيجة في النهاية
نهاية إذا
Closeb my ''إغلاق قاعدة البيانات
''-----الروتين الفرعي الإحصائي-----
عدد الاستطلاعات الفرعية ()
if session("survey_ok")="" ثم ''إذا لم تقم بالتصويت بعد
no=request.form("res") ''احصل على رقم الإجابة
إذا لم يكن هناك <>"" ثم
''حدد عبارات SQL لزيادة عدد الإجابات المقدمة بمقدار 1
sql="تحديث مجموعة الاستطلاع_التصويت Vote_count=vote_count+1 حيث التصويت_no= في ("& no &")"
my.exeql
نهاية إذا
جلسة ("survey_ok") = "موافق"
نهاية إذا
النهاية الفرعية
''------------------
''---عرض الروتين الفرعي للنتيجة---
sub disp_survey()
''حدد عبارات SQL للحصول على أسئلة الاستطلاع
sql = "اختر Survey_question من الاستطلاع حيث Survey_id = " & id
Searchtable my,sql,rs ''تنفيذ الاستعلام
question=rs("survey_question") ''احفظ السؤال في السؤال
Closetable rs ''إغلاق الجدول
''حدد عبارة SQL واحصل على العدد الإجمالي للإجابات
sql = "اختر المجموع (vote_count) كإجمالي من Survey_vote حيث voice_id = "& id
Searchtable بلدي، SQL، RS
المجموع = رس("المجموع")
Closetable rs '' Close table
'' عبارة SQL ويحصل على جميع أجزاء نص الإجابة وأرقام التصويت
sql = "اختر Vot_answer، Vote_count من Survey_vote حيث Vot_id = & ID
Searchtable my,sql,rs ''تنفيذ الاستعلام
''يستخدم ما يلي الجداول لإخراج الجداول الإحصائية
%>
<عرض الجدول = "500" الحدود = "1" محاذاة = "المركز" خلية الحشو = "2" تباعد الخلايا = "0"
bordercolorligh = "#000000" bordercolordark = "#ffffff">
<تر>
<td colspan="4" align="center"><b>إحصاءات الاستطلاع</b></td>
</tr>
<تر>
<td colspan="4"><b>سؤال الاستطلاع: <%=question%></b></td>
</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*10000)/100 ''احسب النسبة المئوية
نهاية إذا
%>
<تر>
<td width="150" align="center"><%=rs("vote_answer")%></td>
<td width = "150" محاذاة = "يسار">
<حدود الجدول = "0" العرض = "<%=percent%>" bgcolor = "#CCCC00" الارتفاع = "10">
<تر>
<td></td>
</tr>
</الجدول>
</TD>
<td width="100" align="center"><%=percent%>%</td>
<td width="100" align="center"><%=rs("vote_count")%></td>
</tr>
<%
rs.movenext
حلقة
%>
<تر>
<td colspan="4"> هناك <%=total%> من الأصوات اعتبارًا من <%=now()%>
<a href="javascript:window. Close()">إغلاق النافذة</a>
</TD>
</tr>
</الجدول>
<%
Closetable rs ''إغلاق الجدول
النهاية الفرعية
''------------------
%>
</الجسم>
</html>
أثناء عملية عرض التصويت، نستخدم متغير الجلسة Survey_ok للإشارة إلى ما إذا تم التصويت أم لا. بالإضافة إلى ذلك، تشير إحصائيات العرض هذه إلى ملفات CSS للتحكم في نمط الجدول، ويمكنك إضافتها بنفسك وفقًا لمتطلباتك الخاصة.
8. قم بإدراج حالة كافة الاستطلاعات
الآن دعنا نكمل Survey.asp. وتتمثل مهمتها الرئيسية في سرد حالة كافة الاستطلاعات، بما في ذلك:
1. أسئلة الاستطلاع المرتبطة بصفحة نموذج التصويت (مكتوبة مباشرة في هذه الصفحة)
؛ وقت بدء الاستطلاع؛
3. وقت انتهاء الاستطلاع؛
4. حالة الاستطلاع: لم يبدأ، قيد التقدم، انتهى؛
5. عدد الأصوات في الاستطلاع
؛ الاختيار أو الاختيار المتعدد
7. قم أيضًا بتوفير رابط لعرض نتائج التصويت
وفقًا لهذه المتطلبات، ما عليك سوى الاستعلام عن الجدول المقابل، مثل الحصول على العدد الإجمالي للأصوات، وقد تمت كتابة عبارات SQL بالفعل في Survey_vote. آسيا والمحيط الهادئ أعلاه.
سرد حالة كافة الاستطلاعات Survey.asp
<!--#include file="inc.asp" -->
<أتش تي أم أل>
<الرأس>
<title>قائمة الاستطلاعات عبر الإنترنت</title>
<link rel="stylesheet" href="main.css" type="text/css">
</الرأس>
<الجسم>
<%
id=request.querystring("id") ''احصل على المعلمات
إذا كان المعرف<>"" ثم ''إذا كانت هناك معلمات، فاعرض نموذج الاستطلاع هذا
Response.write "<SCRIPT Language=''JavaScript'' SRC=''surveycode.asp?id="&id&"''></SCRIPT>"
آخر '' وإلا، اتصل بالروتين الفرعي لعرض الحالة
ديستات ()
النهاية إذا
''-----عرض روتين الحالة----
Disstat الفرعية ()
opendb الخاص بي ''الاتصال بقاعدة البيانات
opentable my,survey,rs ''افتح الجدول مباشرة
''يستخدم ما يلي جدولاً لعرض كل سجل
''إظهار الرأس أولاً
%>
<عرض الجدول = "760" الحدود = "1" تباعد الخلايا = "0" خلية الحشو = "2"
محاذاة = "مركز" bordercolorligh = "#000000" bordercolordark = "#ffffff">
<تر>
<td colspan="8" align="center"><b>قائمة الاستطلاعات عبر الإنترنت</b></td>
</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
'' اقرأ كل حقل أولاً
معرف = rs ("survey_id")
سؤال=rs("survey_question")
''اقرأ النوع
إذا كان rs("survey_type") إذن
stype = "اختيار متعدد"
آخر
ستيب = "اختيار واحد"
نهاية إذا
stime=rs("survey_stime")
etime=rs("survey_etime")
''حالة الحكم
إذا كان الآن () <الوقت ثم
القانون = "لم يبدأ"
آخر
إذا الآن <الوقت ثم
القانون = "في التقدم"
آخر
القانون = "انتهى"
نهاية إذا
end if
''حدد عبارة SQL واحصل على العدد الإجمالي للإجابات
sql = "اختر المجموع (vote_count) كإجمالي من Survey_vote حيث voice_id = "& id
Searchtable my,sql,tmprs ''query
المجموع=tmprs("المجموع")
tmprs قابلة للإغلاق ''إغلاق الجدول
''إخراج سجل أدناه
%>
<تر>
<td align="center" height="20"><%=id%></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"><%=total%></td>
<td محاذاة = "المركز" الارتفاع = "20">
<a href="survey_vote.asp?id=<%=id%>" target="_blank">عرض</a>
</TD>
</tr>
<%
rs.movenext ''الانتقال إلى العنصر التالي، حلقة
حلقة
%>
</الجدول>
<%
Closetable rs ''إغلاق الجدول
Closeb my ''أغلق قاعدة البيانات
النهاية الفرعية
''----------------------
%>
</الجسم>
</html>
9. إدارة الواجهة الخلفية
في صفحة إدارة الواجهة الخلفية Survey_manage.asp، قمنا بالفعل بإدراج وظائف الإدارة التي تريد تحقيقها. تتمثل عملية الإدارة أولاً في عرض جميع التحقيقات التي لم تبدأ بعد، يمكنك تعديلها أو حذفها؛ وبالنسبة للتحقيقات التي انتهت، يمكنك حذفها ولكن لا يمكنك تعديلها، بالنسبة للتحقيقات الجارية، يمكنك فقط تعديل نهايتها وقت. استخدم إجراء معلمة واحدة لتمثيل الإجراء، والمعنى هو كما يلي:
1. لا توجد معلمات. يشير إلى المرة الأولى للدخول، عرض نموذج تسجيل الدخول
2، تسجيل الدخول يعني تنفيذ تسجيل الدخول
3، تسجيل الخروج يعني تنفيذ تسجيل الخروج
4، showaddquestion يعني عرض استطلاع إضافي
5، showsurvey يعني عرض استطلاع
6، doaddsurvey يعني تنفيذ اضافة استبيان
7 doaddanswer تعني تنفيذ اضافة إجابة
8. dodelsurvey تعني حذف استبيان
9. dodelanswer تعني حذف إجابة
10. domodify تعني تعديل استبيان وإجابة