الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج اختبرات للجامعات؟

مغلق
بدأه عبدالله جابر شقليه في 25 ديسمبر 2003 · 18 رد · 1,324 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

إلى جميع أعضاء منتديات الفريق العربي للبرمجة لقد قمت ببرمجة برنامج اختبرات للجامعات، وهو برنامج لقد تلقه لحد الان النجاح، ولكن البرنامج لم يكتمل لحد الان وتستطعون الان مشاهدة ما قمت لحد الان ما قمت به وهو على عنوان الرابط التالي

http://www.arabmoheet.com/exam

بعد الضغط على لوحة التحكم

أدخل اسم المدرس

maher

رقم المدرس

123

حيث أن هذا البرنامج يقوم بعرض الأسئلة في صفحة واحدة ويقوم عرضها كأسئلة شرح ،واختيار متعدد ، وصح وخطأ، ويوقم أيضاً بالتصحيح التلقائي لأسئلة الاختيار المتعدد والصج والخطأ، ويعرض كشف علمات الطالب، وفي لوحة التحكم سوف تشاهدونها، بعد أن تدخلو رقم المدرس واسمه، وعن طريقها سوف تفهمون كل شي، قوموا بادخال مدرسين جدد، ومواد جديدة وأسئلة جديدة، وتنسيب الطلبة للمدرسين الذين سوف تقومون بادخالهم ، وأسئلة جديدة، ومن ثم قوموا بادخال رقم الطالب والرقم السري الذي أدخلتموهم حتى تستطعون من تقديم الاختبار، ومن بعد تقديم الاختبار اذهب للوحة التحكم وقم بتصحيح الاختبار.

وأحب إبلاغكم بأنه كل ما تواجد به البرنامج في جزء من العمل، لأنه لم ينتهي لحد الان.

وإذا أعجبكم ما قمت بعمله سوف أقوم بشرح كيف تم برمجته على لغة ال asp والمنلاقشة به، وإضافة بعض مقترحاتكم عليه.

مع تحياتي لكم جميعاً.

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#2

مشكور جداً اخي الكريم

على هذا النموذج لهذا البرنامج الكبير والعظيم

لا اله الا الله محمد رسول الله

شبكة شباب IT

http://www.shababit.net

shababit.gif

#3

لا شكر على واجب يا اخ ماجد، وإن شاءلله في الاسبوع القادم سوف تشاهد الإضافات الأخرى على البرنامج.

مع تحياتي.

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#5

السلام عليكم

لا استطيع وضع الكود له، لانني اقوم بعمله للجامعة التي ادرس بها في فلسطين، ولكن انا قلت على استعداد تام لشرح كيف قمت ببرمجته على تقنية ال asp، ولكنني لم ألاحظ اهتمام كبير لهذا البرنامج الكل يهتم كيفية عمل منتدى وعمل سجل زورا وعمل شات وغيره ، ولكن لا يعلمون ما قدرتها في عمل الكثير من البرامج المفيدة للجامعات، مثل التسجيل عبر الانترنت، وعرض كشف علمات الطلبة، واختبرات.

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#6

السلام عليكم ورحمة الله وبركاته:

إذا كنت مستعداً للشرح فأرجو أن تبدأ بجداول قاعدة المعطيات و يكفي أن تضع كل جدول وما يحتويه من حقول, وعلى فكرة لا يهمني كيف قمت بالبرمجة فأنا والحمد لله جيد في البرمجة وإن نعثرت في مكان ما سوف أسألك بدون تردد.

إسماعيل

#7

السلام عليكم

اوكي يا اخ اسماعيل سوف أقوم بشرح الجداول التي استخدمتها في البروجكت، ولكن أريد أن تنتظر عليه لمدة اسبوعين حتى أنتهي من فترة اختباراتي، وبعدها سوف أكون مستعد وجاهز لشرح كل ما تريده في البرنامج، فقط انتظر لغاية 28 يناير حتى أنتهي من الاختبارات.

مع تحياتي

عبدالله شقليه

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#9

مشكور اخوى عبدالله جابر شقليه على جهدك الطيب ... وبصراحه انا ماعندي خلفيه عن asp .... لكن عندي خلفيه جيده عن الجافا .... :)

وياريت والله لو تنزل لنا الدرس بالتدريج .. بنكون شاكرين لك ولجهودك ويانا ...

:: اللهم اغفر لي ولوالدي .. وللمسلمين والمسلمات .. ااحياء والاموات منهم .. ::

#10

السلام عليكم

أنا آسف على تأخري على هذا الموضوع، ولكن هناك ظروف كثيرة منعتني ، ولكن إنشاءلله اليوم سوف أبداْ بشرح كيفية عمل برنامج الاختبارات، طبعاً البرنامج غير كامل لحد الان لأنه هناك إضافات كثيرة سوف تحدث مستقبلياً، وإن شاءلله سوف نشارك جميعاً في تطوير هذا المشروع، وفي تطوير أيضاَ مشاريع أخرى.

سوف أقوم الان بوضع جداول المشروع، واليوم بالليل سوف أبدأ بشرح بعض صفحات للمشروع، وسوف يكون الشرح خطوه بخطوه، حتى يتسنى للأخرين الفرصة بالمشاركة في هذا المشروع، وأن لا يفوت عليهم الكثير من الشرح، وأرجوا عندما أنتهيء من شرح أي صفحة من صفحات المشروع، إذا واجهته أي مشكله فأرجوا أن يقوم بطرحها قبل النقل لشرح صفحات أخرى.

الان سوف أقوم بكتابة جداول المشروع وهي مكونه لحد الان من 9 جداول، واسم قاعدة البيانات exam.mdb

الجدول الأول وهو student وهو خاص ببيانات الطلبة الجامعة.( يحتوي على ثلاث حقول كالتالي):

الحقل student_name: وهو من نوع text(اسم الطالب).

الحقلstudent_no: وهو من نوع text (رقم الطالب).

الحقل pass: وهو من نوع text (كلمة المرور للطالب).

الجدول الثاني subject وهو خاص بالمقررات (يحتوي على على اربع حقول كالتالي):

الحقل subject_no: من نوع text ( رقم المقرر)

الحقل subject_name: من نوع text (اسم المقرر).

الحقل number_hour: من نوع number (عدد ساعات المقرر).

الحقل activets: من نوع number (يحدد إذا كان الامتحان مفعل بقيمة 1،غير ذلك يكون معطل الاختبار).

الجدول الثالث teacher وهو خاص ببيانات أعضاء الهيئة التدريسية(يحتوي على اربع حقول كالتالي):

الحقل tec_id: من نوع text (رقم المدرس).

الحقل name_tec:من نوع text(اسم المدرس).

الحقل pass: من نوع text (كلمة المرور المدرس).

الحقل perm: من نوع number(تحدد نوع صلاحيات المدرس (سوف يتم توضيحه خلال شرح لوحة التحكم الخاصة بأعضاء الهيئه التدريسية).

الجدول الرابع teacher_subject وهو علاقه بين بين جدول المقررات وجدول المدرسين( يحتوي على حقلين كالتالي):

الحقل tec_id

الحقل subject_no

الجدول الخامس st_tea_sub وهو علاقه بين جدول الطلبه والمدرسين والمقررات(يحتوي على ثلاث حقول كالتالي):

الحقل tec_id

الحقل subject_no

الحقل student_no

الجدول السادس quection وهو خاص بأسئلة الاختبارات( يحتوي على 9 حقول كالتالي):

الحقل ID: من نوع autonumber ( يعطي رقم لكل سؤال عند الإضافة).

الحقل tec_id رقم المدرس الذي قام بإضافة السؤال.

الحقل subject_no: رقم المقرر الذي تم إضافة له السؤال.

الحقل quection: من نوع text ( سؤال الاختبار الذي تم إضافته).

الحقل answer :من نوع memo (يحتوي على الإجابة الصحيحة للسؤال).

الحقل type_qeuc: من نوع number ( يحتوي على نوع السؤال إذا كان شرح أو صح أو خطأ أو اختيار متعدد).

الحقل mark: من نوع number (يحتوي على درجة السؤال).

الحقل activets: من نوع number ( يحدد إذا كان هذا السؤال فعال بقيمة 1 غير ذلك يكون معطل السؤال فلن يتم عرضه عند تقديم الاختبار).

الحقل pic: من نوع text (يحتوي على صوره إذا كان يتطلب السؤال لوجود رسم توضيحي).

الجدول السابع quec وهو خاص بالأسئلة التي من نوع اختيار متعدد( سوف يتم توضيحه تفصيلياً فيما بعد)( يحتوي على ثلاث حقول كالتالي):

الحقل id رقم السؤال.

الحقل subject_no رقم المقرر.

الحقل quec من نوع memo ( يتم تخزين به الخيارات).

الجدول الثامن student_answer وهو يختص بتخزين إجابة الطالب للإمتحان( يحتوي على اربع حقول كالتالي):

الحقل id رقم السؤال (الذي قام بالإجابة عليه).

الحقل subject_no رقم المقرر.

الحقل student_no

الحقل student_answer من نوع memo (يحتوي على إجابة الطالب على السيؤال).

الجدول التاسع student_mark يحتوي على علامات الطلبة ( يحتوي على اربع حقول كالتالي):

الحقل subject_no رقم المقرر.

الحقل student_no رقم الطالب.

الحقل mark من نوع number ( يحتوي على درجة الطالب).

الحقل dis من نوع number (سوف يتم توضيحه خلال شرح صفحة عرض كشف العلامات للطلبة).

بهذا نكون قد انتهينا من جداول المشروع، وأي إضافات على المشروع سوف أقوم بعملها على المشروع سوف أعلمك بها.

بعد أن قمتم بعمل هذه الجداول، أرجوا أن تقوموا بوضع قواعد البيانات التي اسمها exam.mdb داخل مجلد اسمه db وأن يتم المجلد داخل المجلد Inetpub الخاص بي سيرفر ال asp ، وأن لا يتم وضعه داخل المجلد wwwroot) لأنه خلال شرح صفحات المشروع، سوف أقوم بوضع الاتصال لي قاعدة البيانات على المسار الذي أن قمت بتحديده إلا إذا أنتم قمتم بتحديد مسار الوصول لقاعدة البيانات.

إن شاءلله اليوم بالليل سوف أقوم بشرح بعض الصفحات للمشروع، وسوف أبدأ أول شئ بشرح لوحة التحكم للمشروع، فأرجوا من الجميع أن يدخلوا على لوحة التحكم على المشروع على الرابط الذي قمته بوضعه في المشاركة في الأعلى حتى يأخذ فكره على طبيعة عمل لوحة التحكم.

ملاحظة: كل من يريد متابعة هذا الموضوع يجب أن يكون يجيد لغة ال asp على الأقل يستطيع عمل إضافة على قواعد البيانات وكيفية جلب البيانات من الجداول وعرضها بشكل جيد) إذا لا ستطيع من عمل ذلك فهناك موقع يستطيع التعلم منه وانا أيضاً قد تلعمت منه وهو موقع المدرسة على الرابط التالي http://www.w3schools.com.

وهناك موقع خاص بي قمت بشرح به الكثير من الدروس ومنه ال asp يمكن متابعته على العنوان التالي http://www.arabmoheet.com/learn.asp.

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#11

شكراً أخي عبد الله.

لقد بدأت منذ مدة بكتابة موقع امتحان إلكتروني باستخدام ASP.NET.

وبصراحة ما يهمني هو الأفكار وليس الكود.

وقد وصلت إلى تصحيح الامتحان وتعثرت القصة وأحاول الآن حلها.

ولكن أنا أتابع معك خطوة بخطوة ففي النهاية لا غنى عن المحترفين

تم تعديل هذه المشاركة بواسطة ismaeel في 31 يناير 2004 في 04:35

#12

السلام عليكم ورحمة الله وبركاته:

لاحظت أن جميع الحقول المتعلقة بالأرقام ( رقم الطالب مثلاً ) هو عبارة عن حقل نصي, أليس الأفضل أن يكون حقل رقمي, لسببين:

1. الحقل هو أصلاً رقمي, أقصد رقم الطالب, رقم المقرر, .... .

2. أعتقد أن الحقول الرقمية أسرع من أجل عملية البحث.

بالنسبة للجدول الذي يربط الطلاب بالمدرسين وبالمواد, يعني أنا فهمت أن المدرس عندما يضع اختبار فإن الطلاب التابعين لهذا المدرس فقط سوف يقدمون هذا الاختبار, وإذا أردت أن تستثني أحد الطلاب فإن عليك حذف هذا الطالب من الجدول السابق.

هنا لدي اقتراح: لماذا لا تعطي للمدرس السماحية بأن يختار الطلاب بشكل كيفي, أي مثلاً يختار السنة عندها تُعرض أسماء الطلاب ثم يختار المدرسُ الطلابَ الذين سوف يقدمون الامتحان.

بالنسبة لتخزين الأسئلة, أنا استعملت الطريقة التالية:

1. جدول للأسئلة يتضمن الحقول التالية:

a. Q_ID : رقم السؤال ( ترقيم تلقائي ).

b. Q_TEXT : نص السؤال.

c. Q_TYPE : نوع السؤال ( 1 أجوبة متعددة, 0 جواب واحد ).

d. Q_MARK : علامة السؤال ( حقل رقمي ).

e. S_ID : رقم المادة التي يتبع لها السؤال.

f. Q_ACTIVE : فعال أم غير فعال ( نعم\لا ).

2. جدول الأجوبة الذي تُخزن فيه أجوبة جميع الأسئلة:

a. A_ID : رقم الجواب ( ترقيم تلقائي ),

b. Q_ID : رقم السؤال.

c. A_TEXT : نص الجواب.

d. A_TRUE : هل هذا الجواب صحيح ( نعم\لا ).

في الجدول quec هناك تكرار لرقم المادة, فالرقم نفسه موجود في جدول الأسئلة question .

بالمناسبة ما الهدف من حقل عدد ساعات المقرر.

ما سبق هي وجهة نظري في قاعدة المعطيات, وفي النهاية أنتم المختصون ومنكم نستفيد.

#13

السلام عليكم

يا اخي اسماعيل بالنسبه لي رقم الطالب الجامعي عندنا في فلسطين لا يكون رقمي بلي يكون على سبيل المثال 1235/99

ورقم المادة يكون أيضاً على سبيل المثال comp3301

فأعتقد أنني لا أستطيع أن أضعه حقل رقمي، فأنا لا أعرف بالنسبه للدول الأخرى هل تتبع نفس النظام أو لا لكن في اعتقادي أن كل الجامعات تتعامل على هذا النحو.

بالنسبة للجدول quec قمت بتخزين داخله رقم السؤال من الجدول quection لانه في هذا الجدول سوف يقوم بتخزين فقط خيارات السؤال، فيعني سوف يكون السؤال مخزن في الجدول quection وإذا كان السؤال يحتوي على خيارات سوف يتم تخزينه داخل الجدول quec لأنه أسئلة الصح والخطأ وأسئلة الشرح لا تحتاج إلى خيارات فلذلك أنا أحتاج رقم السؤال في جدول ال quec لكي أعمل علاقة بينهم عن طريق رقم ال id مع الجدول quection.

بالنسبة لعدد ساعات المقرر ، بالنسبة للجامعة اليت أدرس بها تتبع نظام فصلي وليس نظام كورس يعني أن تستطيع تحديد كم ساعة تنزلها في الفصل،والحد الأعلى لتنزيل عدد من الساعات في الفصل هو 21 ساعه وأقل حد هو 12 ساعه في الفصل باستثناء الفصل الصيفي.

فكل ماده لها عدد ساعات معينه هناك ماده تكون 3 ساعات وماده أخرى 4 ساعات وماده ساعه واحده وماده ساعتين

فهذا هو المقصود بنظام الساعات للمقرر.

بالنسبة للطلبة الذين سوف يقدمون الاختبار مع الاستاذ، لو لاحظة في لةحة التحكم كان قد وجدت أن الأستاذ هو من يحدد الطلبة الذين سوف يقدمون معه المادة، وبالنسبة لنظام السنوات فهي في البال بس ظروف وقتي لم تسمح لي في إكمال المشروع، وإن شاءلله خلال مشاركتنا هنا سوف نتعاون جميعاً على تطوير هذا المشروع.

وإن شاءلله سوف أحاول اليوم بشرح بعض صفحات المشروع إذا استطعت

مع تحياتي لك يا أخ اسماعيل لمشاركتك واهتمامك في الموضوع.

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#14

السلام عليكم

الان سوف أقوم بشرح بعض صفحات لوحة التحكم للبروجكت ، وهي صفحات سهلة جداً كله إضافة بيانات

قم بإنشاء مجلد وليكن اسمه exam وضعه داخل المجلد wwwroot الخاص في سيرفر ال iis ، بعدها قم بإنشاء مجلد اسمه admin وهو خاص في صفحات لوحة التحكم وضعه داخل المجلد exam.

قم بإنشاء صفحة وليكن اسمها connection.asp سوف تحتوي هذه الصفحة على كود الاتصال في قاعدة البيانات والذي سوف يتم استدعائه في جميع الصفحات البروجكت.

سوف أضع كود الان الوصول لقاعدة البيانات بالنسبة للمسار الذي وضحة أعلى أين تقع قاعدة البيانات

<%
'dim conn
set conn=server.createobject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0"
conn.open(server.MapPath("../../../db/exam.mdb"))

%>

بعدها قم بتخزين الصفحة داخل المجلد admin.

وبذلك نكون قد انتهينا من طريقة الربط مع قواعد البيانات.

الصفحة التالية واسمها admin_login وهي هذه الصفحة سوف تقوم بعملية تسجيل الدخول لأعضاء الهيئة التدرييسية للوحة التحكم وسوف أقوم الأن بكتابة الكود التالي للصفحة

<html dir="rtl">

<!--#include file="connection.asp"-->

<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>New Page 1</title>
</head>
     
<body>

<p align="center"> </p>
<p align="center"> </p>

<div align="center">
  <center>
  <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="67%" id="AutoNumber3">
    <tr>
      <td width="100%">
      <p align="center"><font color="#FF0000"><b>للدخول إلى لوحة التحكم الخاصة 
      بك يرجى إدخال الحقول التالية بطريقة صحيحة حتى يتم تسجيل دولك للإدارة</b></font></td>
    </tr>
  </table>
  </center>
</div>
<p align="center"> </p>
<%if request("tech_id")="" then%>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="82%" id="AutoNumber1">
    <tr>
      <td width="100%">
      <form method="POST" action="admin_login.asp">
        <div align="center">
          <center>
          <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="68%" id="AutoNumber2">
            <tr>
              <td width="50%" align="center">
              <font size="2" face="MS Sans Serif" color="#000080">رقم المدرس</font></td>
              <td width="50%" align="center">
              <font face="MS Sans Serif" color="#000080">
              <input type="password" name="tech_id" size="20"></font></td>
            </tr>
            <tr>
              <td width="50%" align="center">
              <font face="MS Sans Serif" size="2" color="#000080">كلمة المرور</font></td>
              <td width="50%" align="center">
              <font face="MS Sans Serif" color="#000080">
              <input type="password" name="pass" size="20"></font></td>
            </tr>
          </table>
          </center>
        </div>
        <p align="center"><input type="submit" value="دخول"></p>
      </form>
      </td>
    </tr>
  </table>
  </center>
</div>
<%else
set check_tech=conn.execute("select * from teacher where tec_id='"&request("tech_id")&"' and pass='"&request("pass")&"'")
if not check_tech.eof then
session("tech_id")=request("tech_id")%>
<meta http-equiv="Refresh" content="2; URL=admin_home.asp">

 <table width="100%" border="0" cellspacing="0" cellpadding="0" height="90" align="center">
<tr align="center" valign="middle">
	<td height="90">
	<table border="0" cellspacing="1" cellpadding="10" bgcolor="#000099" width="70%">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> <font face="Tahoma" size="2" color="#000080">تم تسجيل دخولك للإدارة 
        بنجاح</font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="admin_home.asp">
        <font color="#000080">اضغط هنا إذا كنت لا ترغب بالانتظار .<br>
  (أو إذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>
<%else%>
<meta http-equiv="Refresh" content="2; URL=JavaScript:history.go(-1)">

 <table width="100%" border="0" cellspacing="0" cellpadding="0" height="54" align="center">
<tr align="center" valign="middle">
	<td height="54">
	<table border="0" cellspacing="1" cellpadding="10" bgcolor="#000099" width="70%" height="1">
	<tr>
  <td bgcolor="#dee7f7" align="center" height="32">
  <span lang="ar-sa"><b><font face="Tahoma" size="2" color="#000080">عذراً  رقم المدرس 
        أو كلمة المرور المدخل غير صحيح</font></b></span><p>
  
  <font face="Tahoma" size="2"> <a href="JavaScript:history.go(-1)">
        <font color="#000080">اضغط هنا إذا كنت لا ترغب بالانتظار .<br>
  (أو إذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </td>
	</tr>
	</table>
	</td>
</tr>
</table>
<%end if
end if%>
</body>

</html>

في هذا الكود قمت بإنشاء فورم يحتوي على حقلين حقل إدخال رقم المدرس واسمه tech_id وحقل كلمة المرور واسمه pass

والفورم يرسل إلى نفس الصفحة.

في هذا الكود

<!--#include file="connection.asp"-->

سوف يقوم باستدعاء صفحة الاتصال بقاعدة البيانات.

<%if request("tech_id")="" then%>

في هذه الجملة سوف تفحص إذا كان الحقل tech_id من الفورم الخاص بإدخال رقم المدرس فارغ سوف يقوم بإظهار الفورم فقط.

أي عند تحميل الصفحة سوف تكون قيمته فارغة فسوف يظهر الفورم في الصفحة فقط.

else

set check_tech=conn.execute("select * from teacher where tec_id='"&request("tech_id")&"' and pass='"&request("pass")&"'")

if not check_tech.eof then

session("tech_id")=request("tech_id")

إذا لم يكن فارغ tech_id أي بعد الضغط على زر submit سوف يصبح به قيمة وسوف يقوم بعملية التأكد هل أن البيانات المرسلة صحيحة أم غير صحيحة عن طريق جملة ال select.

if not check_tech.eof then

في هذه الجملة تفحص إذا كان يوجد قيم مشابهة للقيم المرسلة في قاعدة البيانات قم ببتنفيذ التالي

session("tech_id")=request("tech_id")

سوف يتم تخزين رقم المدرس داخل كائن الجلسة وهذا الكائن سوف يتم استدعائه دائما في جميع صفحات لوحة التحكم والذي سوف ينتهي بعد 20 دقيقة.إذا لم يتم تحديد متى إنتهاء هذا الكائن.

وبعدها سوف ينتقل تلقائياً إلى لوحة التحكم والتي اسمها سوف يكون admin_home.asp

يمكنك مشاهدة محتويات هذه الصفحة عن طريق الذهاب إلى الرابط الذي تم وضعه في المشاركة في الأعلى.

else

إذا لم يكن الشرط صحيح أي أنه لم يعثر على بينات مشابهة لها داخل قاعدة البيانات سوف يظهر له رسالة بأن البيانات المدخلة غير صحيحة.

end if

نهاية جملة if الشرطية للتأكد من البيانات المدخلة.

end if

نهاية جملة if الشرطية. للجملة

<%if request("tech_id")="" then%>

وقم بحفظ هذه الصفحة داخل المجلد admin

وبذاك سوف نكون قد انتهينا من هذه الصفحة .

في المشاركة التالية سوف أقوم بشرح صفحة إضافة المقررات الجامعية، وإضافة الطلبة.

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#15

الان سوف أقوم بوضع كود إضافة المقررات الجامعية وليكن اسم الصفحة insert_subject.asp تحتوي على الكود التالي:

<html dir="rtl">
<%if session("tech_id")="" then
response.redirect("admin_login.asp")
end if%>
<!--#include file="connection.asp"-->

<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>إضافة مقررات</title>
</head>

<script>
function CheckForm () { 

var errorMsg = ""
	if (document.form.subject_name.value == ""){
  errorMsg += "\n\انت لم تدخل إسم المادة";	
	}
else
if (document.form.subject_no.value == ""){
  errorMsg += "\n\أنت لم تدخل رقم المادة";	
	}
	else
if (document.form.number.value == ""){
  errorMsg += "\n\أنت لم تدخل عدد ساعات المادة";	
	}
	if (errorMsg != ""){
  

  errorMsg += alert( errorMsg + "\n\n");
  return false;
	}

	return true;
}

</script>
<body>


<%if request("subject_name")="" then%>
<div align="center">
  <center>
  <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="88%" id="AutoNumber1">
    <tr>
      <td width="100%">
      <p align="center"><font color="#FF0000"><b>لوحة التحكم الخاصة بإضافة 
      المواد الجامعية</b></font></td>
    </tr>
  </table>
  </center>
</div>
<p align="center"><br>
 </p>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="75%" id="AutoNumber2">
    <tr>
      <td width="100%">
      <form method="POST" action="insert_subject.asp" name="form" onSubmit="return CheckForm();">
        <div align="center">
          <center>
          <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="91%" id="AutoNumber3">
            <tr>
              <td width="50%" align="center" bgcolor="#DEE7F7">
              <font color="#000080" size="2" face="MS Sans Serif">اسم المادة</font></td>
              <td width="50%" bgcolor="#DEE7F7">
              <p align="center">
              <font face="MS Sans Serif">
              <input type="text" name="subject_name" size="20"></font></td>
            </tr>
            <tr>
              <td width="50%" align="center" bgcolor="#F4F4F4">
              <font color="#000080" size="2" face="MS Sans Serif">رقم المادة</font></td>
              <td width="50%" bgcolor="#F4F4F4">
              <p align="center"><font face="MS Sans Serif"><input type="text" name="subject_no" size="20"></font></td>
            </tr>
            <tr>
              <td width="50%" align="center" bgcolor="#F4F4F4">
              <font color="#000080" size="2" face="MS Sans Serif">عدد ساعات 
              المادة</font></td>
              <td width="50%" bgcolor="#F4F4F4">
              <p align="center"><font face="MS Sans Serif"><input type="text" name="number" size="20"></font></td>
            </tr>
          </table>
          </center>
        </div>
        <p align="center"><br>
        <input type="submit" value="إضافة"><input type="reset" value="مسح"></p>
      </form>
      </td>
    </tr>
  </table>
  </center>
</div>
<%else
if isnumeric(request("number")) then 
set check_subject=conn.execute("select * from subject where subject_no='"&request("subject_no")&"' or subject_name='"&request("subject_name")&"'")
if check_subject.eof then
conn.execute("insert into subject values ('"&request("subject_no")&"','"&request("subject_name")&"',"&request("number")&",0)")
%>
<p align="center"></p>
<div align="center">
  <center>
  <table width="522" border="0" cellspacing="0" cellpadding="0" height="97" style="border-collapse: collapse" bordercolor="#111111">
<tr align="center" valign="middle">
	<td height="97" width="521">
	<table border="1" cellspacing="0" cellpadding="10" bgcolor="#000099" width="70%" style="border-collapse: collapse" bordercolor="#000080">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> 
  
        <font face="Tahoma" size="2" color="#000080"><b>تمت إضافة المادة بنجاح</b></font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="insert_subject.asp">
        <font color="#000080">اضغط هنا اذا كنت لا ترغب بالانتظار .<br>
  (او اذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>
<meta http-equiv="Refresh" content="2; URL=insert_subject.asp">

<%
else
%>
<p align="center"></p>
<div align="center">
  <center>
  <table width="522" border="0" cellspacing="0" cellpadding="0" height="97" style="border-collapse: collapse" bordercolor="#111111">
<tr align="center" valign="middle">
	<td height="97" width="521">
	<table border="1" cellspacing="0" cellpadding="10" bgcolor="#000099" width="70%" style="border-collapse: collapse" bordercolor="#000080">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> 
  
        <font face="Tahoma" size="2" color="#000080"><b>عذراً... رقم المادة أو 
        اسم المادة مضاف من قبل </b></font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="insert_student.asp">
        <font color="#000080">اضغط هنا اذا كنت لا ترغب بالانتظار .<br>
  (او اذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>
<%
end if
else
%>
<p align="center"></p>
<div align="center">
  <center>
  <table width="522" border="0" cellspacing="0" cellpadding="0" height="97" style="border-collapse: collapse" bordercolor="#111111">
<tr align="center" valign="middle">
	<td height="97" width="521">
	<table border="1" cellspacing="0" cellpadding="10" bgcolor="#000099" width="70%" style="border-collapse: collapse" bordercolor="#000080">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> 
  
        <font face="Tahoma" size="2" color="#000080"><b>عذراً... يجب أن يكون عدد 
        الساعات المدخل يحتوي على رقم عددي</b></font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="insert_student.asp">
        <font color="#000080">اضغط هنا اذا كنت لا ترغب بالانتظار .<br>
  (او اذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>


  </center>
</div>
<%end if
end if%>

</body>

</html>

<%if session("tech_id")="" then

response.redirect("admin_login.asp")

end if%>

هذا الكود الموجود أعلى الصفحة سوف يفحص إذا كان كائن الجلسة الذي قمنا بتخزين بداخله رقم المدرس فارغ سوف يرجعه مباشرة إلى صفحة إدخال اسم المدرس ورقم المدرس (admin_login)

قم بإنشاء فورم يحتوي على ثلاث حقول وهي كالتالي:

الحقل سم المادة واسمه subject_name

الحقل رقم المادة واسمه subject_no

الحقل عدد ساعات المادة واسمه number

<%if request("subject_name")="" then%>

إذا كانت قيمة الحقل الذي في الفورم الخاص باسم المادة فارغ أي لم يتم إرسال بيانات قم بإظهار الفورم.

<%else

if isnumeric(request("number")) then

set check_subject=conn.execute("select * from subject where subject_no='"&request("subject_no")&"' or subject_name='"&request("subject_name")&"'")

if check_subject.eof then

conn.execute("insert into subject values ('"&request("subject_no")&"','"&request("subject_name")&"',"&request("number")&",0)")

%>

بعد عملية إدخال البيانات داخل الفورم وعمل submit سوف ينتقل إلى جملة else

if isnumeric(request("number")) then

في هذا الشرط سوف يتأكد إذا كان عدد الساعات الكدخل عددي أم غير عددي

إذا كان عددي سوف يقوم بتنفيذ الكود الذي يليه

set check_subject=conn.execute("select * from subject where subject_no='"&request("subject_no")&"' or subject_name='"&request("subject_name")&"'")

هنا سوف يتم التأكد من أنه هل أن المادة المدخلة موجوده من قبل أو أن رقم المادة المدخل موجود من قبل.

if check_subject.eof then

في الشرط التابع لجملة select إذا كانت قاعدة البيانات لا تحتوي على اسم هذه المادة من قبل أو رقمها قم بتنفيذ التالي

conn.execute("insert into subject values ('"&request("subject_no")&"','"&request("subject_name")&"',"&request("number")&",0)")

هنا سوف يتم إضافة البيانات المرسلة داخل الفورم إلى الجدول الخاص بالمقررات الجامعية وهو الجدول subject.

القيمة صفر الموجد في جملة insert أي أن المادة المدخلة امتحانه غير فعال.

else

التابعة لجملة if check_subject.eof then

إذا كان يوجد هناك مادة بنفس الاسم أو وجود رقم لنفس الرقم المدخل سوف تظهر له رسالة بذلك.

end if

نهاية جملة if check_subject.eof then

else

التابعة لجملة if isnumeric(request("number")) then

إذا كان عدد الساعات المدخل ليس رقمي سوف تظهر له رسالة بذلك.

end if

نهاية جملة if isnumeric(request("number")) then

end if نهاية جملة <%if request("subject_name")="" then%>

وبذلك نكون قد انتهينا من هذه الصفحة.

في المشاركة التالية سوف أشرح صفحة إضافة الطلبة واسمها insert_student.asp

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#16

سوف أقوم بوضع كود الصفحة insert_student.asp

<html dir="rtl">
<!--#include file="connection.asp"-->
<%if session("tech_id")="" then
response.redirect("admin_login.asp")
end if%>
<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>لوحة التحكم الخاصة في إضافة الطالب الجامعي للاختبرات</title>
</head>

<script>
function CheckForm () { 

var errorMsg = ""
	if (document.form.number.value == ""){
  errorMsg += "\n\أدخل الرقم";	
	}

	if (errorMsg != ""){
  

  errorMsg += alert( errorMsg + "\n\n");
  return false;
	}

	return true;
}

</script>
<body>

<center>
<%if request("student_name")="" then%>

        <p dir="rtl" align="center">
        <a href="admin_home.asp">
        <br>
        لوحة التحكم</a></p>
<p> </p>

<div align="center">
  <center>
  <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000080" width="67%" id="AutoNumber1">
    <tr>
      <td width="100%">
      <p align="center"><font color="#FF0000"><b>لوحة التحكم الخاصة في إدخال 
      أسماء وأرقام الطلبة الجامعيين</b></font></td>
    </tr>
  </table>
  </center>
</div>
<p align="center"> </p>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="70%" id="AutoNumber2">
    <tr>
      <td width="100%">
      <form method="POST" action="insert_student.asp" name="form" onSubmit="return CheckForm();">
        <div align="center">
          <center>
          <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000080" width="58%" id="AutoNumber3">
            <tr>
              <td width="80%" align="center" bgcolor="#F4F4F4">
              <font size="2" face="MS Sans Serif" color="#000080"> أدخل عدد 
              الحقول التي تريدها أن تظهر:</font></td>
              <td width="20%" align="center" bgcolor="#F4F4F4">
              <font face="MS Sans Serif">
              <input type="text" name="number" size="8"></font></td>
            </tr>
          </table>
          </center>
        </div>
        <p align="center"><input type="submit" value="عرض"><input type="reset" value="مسح"></p>
      </form>
      </td>
    </tr>
  </table>
  </center>
</div>
<%if request("number")<>"" then
if not isnumeric(request("number")) then %>
<script>
alert("يجب أن تدخل رقم عددي")
</script>
<%else
if  request("number")>=301 then %>
<script>
alert("يجب  لا يتجاوز العدد 300")
</script>
<%else%>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="70%" id="AutoNumber4">
    <tr>
      <td width="100%">
      <form method="POST" action="insert_student.asp">
        <div align="center">
          <center>
          <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000080" width="100%" id="AutoNumber5">
       <%for i=1 to request("number")%>    
 <tr>
              <td width="50%" align="center" bgcolor="#F4F4F4">
              <font face="MS Sans Serif" size="2" color="#000080">اسم الطالب</font></td>
              <td width="50%" align="center" bgcolor="#F4F4F4">
              <input type="text" name="student_name" size="36"></td>
            </tr>
            <tr>
              <td width="50%" align="center" bgcolor="#DEE7F7">
              <font face="MS Sans Serif" size="2" color="#000080">رقم الطالب</font></td>
              <td width="50%" align="center" bgcolor="#DEE7F7">
              <input name="student_no" size="36"></td>
            </tr>
            
            <tr>
              <td width="50%" align="center" bgcolor="#DEE7F7">
              <font size="2" face="MS Sans Serif">كلمة المرور</font></td>
              <td width="50%" align="center" bgcolor="#DEE7F7">
              <input type="password" name="pass" size="36"></td>
            </tr>
            <%next%>
            </table>
          </center>
        </div>
        <p align="center"><input type="submit" value="إضافة"><input type="reset" value="مسح"></p>
      </form>
      </td>
    </tr>
  </table>
  </center>
</div>
<%end if
end if
end if%>
<%else

for student=1 to request("student_name").count
set student_ckeck=conn.execute("select * from student where student_no='"&request("student_no")(student)&"'")
if student_ckeck.eof and request("student_name")<>""then
conn.execute("insert into student values('"&request("student_name")(student)&"','"&request("student_no")(student)&"','"&request("pass")(student)&"')")
else
error=request("student_name")(student)
response.write(error&",")
session("error")=error
end if
next
%>
</center>

<p> </p>

<p align="center"></p>
<div align="center">
  <center>
  <table width="522" border="0" cellspacing="0" cellpadding="0" height="97" style="border-collapse: collapse" bordercolor="#111111">
<tr align="center" valign="middle">
	<td height="97" width="521">
	<table border="1" cellspacing="0" cellpadding="10" bgcolor="#000099" width="70%" style="border-collapse: collapse" bordercolor="#000080">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> 
  
        <font face="Tahoma" size="2" color="#000080"><b>تمت عملية الإضافة بنجاح</b></font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="insert_student.asp">
        <font color="#000080">اضغط هنا اذا كنت لا ترغب بالانتظار .<br>
  (او اذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>


  </center>
</div>
<%end if%>

</body>

</html>

قم بإنشاء فورم يحتوي على حقل واحد واسمه

أدخل عدد الحقول التي تريدها أن تظهر اسمه number

حيث هذا الحقل يحدد عدد الطلبة الذين تريد إضافتهم

قم بإنشاء فورم ثاني لإضافة الطلبة يحتوي على ثلاث حقول وهي كالتالي:

اسم الطالب اسمه student_name

رقم الطالب اسمه student_no

كلمة المرور اسمه pass

<%if request("student_name")="" then%>

إذا كانت قيمة الحقل student_name فارغة سوف يقوم بإظهار الفورم لإدخال عدد الطلبة.

if request("number")<>"" then

إذا كانت قيمة الحقل number من إدخال عدد الطلبة ليس فارغ نفذ التالي

if not isnumeric(request("number")) then

إذا لم يكن الرقم المدخل ليس عددي سوف يظهر له مسج بذلك

else

أي أنه رقم عددي الكدخل نفذ الشرط التالي

if request("number")>=301 then

هنا سوف يتم التأكد من إذا كان العدد المدخل أكبر من 301 سوف يظهر له مسج بذلك

else

إذا كان اقل

سوف يقوم بإظهار الفورم الخاص بإدخال الطلبة

<%for i=1 to request("number")%>

هنا سوف نقوم بعمل جملة for التي تبدأ قيمتها من 1 إلى العدد المدخل من الفورم، وسوف يقوم بتكرار الحقول لغاية العدد المدخل

next

سوف يقوم بإعادة الكرة ومع زيادة قيمة ال i داخل جملة for

end if

نهاية جملة if request("number")>=301 then

end if نهاية الشرط if not isnumeric(request("number")) then

end if نهاية الشرط

if request("number")<>"" then

else

التابعة لجملة <%if request("student_name")="" then%>

إذا كان يحتوي على قيم اسم الطالب سوف يقوم بتنفيذ التالي

for student=1 to request("student_name").count

set student_ckeck=conn.execute("select * from student where student_no='"&request("student_no")(student)&"'")

if student_ckeck.eof and request("student_name")<>""then

conn.execute("insert into student values('"&request("student_name")(student)&"','"&request("student_no")(student)&"','"&request("pass")(student)&"')")

else

error=request("student_name")(student)

response.write(error&",")

session("error")=error

end if

next

for student=1 to request("student_name").count

هنا جملة for سوف تقوم بعمل حلقه تكرارية من القيمة 1 لحد عدد القيم المرسلة من الفورم.

request("student_name").count

count سوف تعطي عدد الحقول المرسلة من الفورم عن طريق وضع أحد حقول الفورم .

ممكن أن ضع بدل من اسم حقل الاسم الحقل رقم الطالب

request("student_no").count

لأنها سوف تحتوي على نفس القيم.

set student_ckeck=conn.execute("select * from student where student_no='"&request("student_no")(student)&"'")

هنا سوف يتم فحص إذا كان هناك رقم طالب مشابه للرقم المدخل

request("student_no")(student)

هنا تلاحظون أنني قمت بإضافة للقيمة المرسلة من الفورم للرقم الطالب (student) حيث هذا المتغير سوف يحمل قيمة، من جملة for أي أنه سوف يتم الفحص هنا بالنسبة للفورم بالنسبة مثلاً للحقل الأول المبعوت من الفورم وعند تكرار الحلقة يصبح رقم أثنان وثلاثة إلى أن تنهي من جملة ال for

حيث أنها تأخذ رقم ال index للحقل student_no من الفورم.

if student_ckeck.eof and request("student_name")(student)<>""then

إذا لم يكن هناك رقم مشابه له أو أن حقل الاسم ليس فارغ سوف يقوم بتنفيذ الشرط التالي

conn.execute("insert into student values('"&request("student_name")(student)&"','"&request("student_no")(student)&"','"&request("pass")(student)&"')")

سوف يقوم بإضافة البيانات داخل الجدول الخاص بي الطلبة وهو الجدول student.

else

إذا كان هناك رقم مشابه له سوف يتم تخزين الاسم المدخل من الفورم داخل المتغير error

error=request("student_name")(student)

response.write(error&",")

هنا سوف يتم طباعة أسماء الطلبة الذين لم يتم إضافتهم.

end if

نهاية الشرط

next سوف تقوم بإعادة الكره مرة أخرى.

<%end if%>

نهاية الجملة

<%if request("student_name")="" then%>

وبذلك نكون قد انتهينا من صفحة إضافة الطلبة.

وإن شاءلله في الأيام القادمة سوف أقوم بشرح باقي صفحات البروجكت.

أرجوا من الجميع قد استفادوا من هذه الصفحات، وأي مشاكل تواجهكم أرجوا مراسلتي حتى أسنطيع من توضيحها لكم أكثر.

وكل عام وانتم بخير

تحياتي لكم جميعاً.

تم تعديل هذه المشاركة بواسطة عبدالله جابر شقليه في 1 فبراير 2004 في 02:32

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#17

سوف أقوم الان فقط بوضع كود صفحة إضافة المدرسين واسم الصفحة insert_teacher.asp وهي لا تختلف عن باقي الصفحات التي تم شرحها في الأعلى.

كو الصفحة

<html dir="rtl">
<%if session("tech_id")="" then
response.redirect("admin_login.asp")
end if%>
<!--#include file="connection.asp"-->

<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>New Page 1</title>
</head>

<body>


<%if request("teach_name")="" then%>
<p> </p>
<p align="center">
        <a href="admin_home.asp">
        لوحة التحكم</a></p>
<div align="center">
  <center>
  <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="75%" id="AutoNumber1">
    <tr>
      <td width="100%">
      <p align="center"><font color="#FF0000"><b>لوحة التحكم الخاصة بإضافة أعضاء 
      الهيئة التدريسية</b></font></td>
    </tr>
  </table>
  </center>
</div>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="81%" id="AutoNumber2">
    <tr>
      <td width="100%">
      <form method="POST" action="insert_teacher.asp">
        <p align="center">
        <br>
 </p>
        <div align="center">
          <center>
          <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="69%" id="AutoNumber3">
            <tr>
              <td width="50%" align="center" bgcolor="#DEE7F7">
              <font size="2" face="MS Sans Serif" color="#000080">اسم المدرس</font></td>
              <td width="50%" align="center" bgcolor="#DEE7F7">
              <font face="MS Sans Serif" color="#000080">
              <input type="text" name="teach_name" size="33"></font></td>
            </tr>
            <tr>
              <td width="50%" align="center" bgcolor="#F4F4F4">
              <font size="2" face="MS Sans Serif" color="#000080">رقم المدرس</font></td>
              <td width="50%" align="center" bgcolor="#F4F4F4">
              <font face="MS Sans Serif" color="#000080">
              <input type="text" name="teach_no" size="33"></font></td>
            </tr>
            <tr>
              <td width="50%" align="center" bgcolor="#F4F4F4">
              <font face="MS Sans Serif" size="2" color="#000080">كلمة المرور:</font></td>
              <td width="50%" align="center" bgcolor="#F4F4F4">
              <font face="MS Sans Serif" color="#000080">
              <input type="text" name="pass" size="33"></font></td>
            </tr>
          </table>
          </center>
        </div>
        <p align="center"><input type="submit" value="إضافة"></p>
      </form>
      </td>
    </tr>
  </table>
  </center>
</div>
<%else
set check_teach_no=conn.execute("select * from teacher where tec_id='"&request("teach_no")&"'")
if check_teach_no.eof then
conn.execute("insert into teacher values('"&request("teach_no")&"','"&request("teach_name")&"',0,'"&request("pass")&"')")%>
<meta http-equiv="Refresh" content="2; URL=insert_teacher.asp">

 <p> </p>
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="90" align="center">
<tr align="center" valign="middle">
	<td height="90">
	<table border="0" cellspacing="1" cellpadding="10" bgcolor="#000099" width="70%">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> <font face="Tahoma" size="2" color="#000080">تمت عملية الإضافة بنجاح</font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="insert_teacher.asp">
        <font color="#000080">اضغط هنا اذا كنت لا ترغب بالانتظار .<br>
  (او اذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>
<%else%>
<meta http-equiv="Refresh" content="2; URL=JavaScript:history.go(-1)">

 <p> </p>
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="90" align="center">
<tr align="center" valign="middle">
	<td height="90">
	<table border="0" cellspacing="1" cellpadding="10" bgcolor="#000099" width="70%">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> <font face="Tahoma" size="2" color="#000080">عذراً رقم المدرس المضاف 
        محجوز من قبل رقم مدرس آخر</font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="JavaScript:history.go(-1)">
        <font color="#000080">اضغط هنا اذا كنت لا ترغب بالانتظار .<br>
  (او اذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>
<%end if
end if%>
</body>

</html>

إن شاءلله في المشاركات القادمة سوف أشرح لكم كيف يتم تنسيب المواد لأعضاء الهيئة التدرسية وتنسيب الطلبة للمدرسين.

تم تعديل هذه المشاركة بواسطة عبدالله جابر شقليه في 1 فبراير 2004 في 02:39

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#18

سوف أقوم الان بشرح صفحة تنسيب المواد لأعضاء الهيئة التدريسية والتي اسمها teacher_subject.asp والكود الخاص بها هو كالتالي:

<html dir="rtl">
<%if session("tech_id")="" then
response.redirect("admin_login.asp")
end if%>
<!--#include file="connection.asp"-->

<head>
<script language=JavaScript>
<!--
function CheckAll() {
	for (var i=0;i<document.form.elements.length;i++) {
  var e = document.form.elements;
  if ((e.name != 'allbox') && (e.type=='checkbox'))
  e.checked = document.form.allbox.checked;
  }
	}
function CheckCheckAll() {
	var TotalBoxes = 0;
	var TotalOn = 0;
	for (var i=0;i<document.form.elements.length;i++) {
  var e = document.form.elements;
  if ((e.name != 'allbox') && (e.type=='checkbox')) {
 	 TotalBoxes++;
 	 if (e.checked) TotalOn++;
 	 }
  }
	if (TotalBoxes==TotalOn) document.form.allbox.checked=true;
	else document.form.allbox.checked=false;
	}
//-->
</SCRIPT>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>New Page 1</title>

<script>
function CheckForm () { 

var errorMsg = ""
	if (document.form.subject_no.value == ""){
  errorMsg += "\n\أنت لم تدخل السؤال";	
	}
else
if (document.form.ans.value == ""){
  errorMsg += "\n\أنت لم تدخل إجابة السؤال";	
	}
	if (errorMsg != ""){
  

  errorMsg += alert( errorMsg + "\n\n");
  return false;
	}

	return true;
}

</script>
</head>

<body>


<%if request("teach_no")="" then%>
<p> </p>
<div align="center">
  <center>
  <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="69%" id="AutoNumber1">
    <tr>
      <td width="100%">
      <p align="center"><font color="#FF0000"><b>لوحة التحكم الخاصة في تنسيب 
      الأعضاء الهيئة التدريسية لمقررات الفصل الدراسي</b></font></td>
    </tr>
  </table>
  </center>
</div>
<p> </p>
<p align="center">
        <a href="admin_home.asp">
        لوحة التحكم</a></p>
<p align="center"> </p>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="95%" id="AutoNumber2">
    <tr>
      <td width="100%">
      <form method="POST" action="teacher_subject.asp" name="form" >
        <div align="center">
          <center>
          <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="73%" id="AutoNumber3">
            <tr>
              <td width="50%" align="center"><b>اختر المدرس</b></td>
              <td width="50%" align="center">
              
              <select size="1" name="teach_no">
              <%set teach_name=conn.execute("select * from teacher")
              if not teach_name.eof then
              do while not teach_name.eof %>
              <option value="<%=teach_name("tec_id")%>"><%=teach_name("name_tec")%></option>
              <%teach_name.movenext
              loop
              else%>
                            <option value="-1">لا يوجد أعضاء هيئة تدريسية مضافين من قبل</option>
<%end if%>
              </select></td>
            </tr>
          </table>
          </center>
          <p> </div>
        <div align="center">
          <center>
          <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="79%" id="AutoNumber4">
            <tr>
              <td width="50%" align="center"><b>تحديد الكل <span lang="en-us"> </span><INPUT 
                        title="تحديد الكل" onclick=CheckAll() type=checkbox 
                        name=allbox value="ON"></b></td>
              <td width="50%" align="center"><b>اسم المقرر</b></td>
            </tr>
            <%set subject=conn.execute("select * from subject")
            if not subject.eof then
            do while not subject.eof%>
            <tr>
              <td width="50%"><span lang="en-us">;        
              </span><input type="checkbox" name="subject_no" value="<%=subject("subject_no")%>"></td>
              <td width="50%">
              <p align="center"> <%=subject("subject_name")%></td>
            </tr>
            <%subject.movenext
            loop
            else
            %>
              <tr>
              <td width="100%" colspan="2">
              <p align="center">لا يوجد مواد مطروحة في هذا الفصل</td>
            </tr>
            <%end if%>
          </table>
          </center>
        </div>
        <p align="center"> </p>
        <p align="center"><input type="submit" value="تنسيب"></p>
      </form>
      </td>
    </tr>
  </table>
  </center>
</div>
<%else
for i=1 to request("subject_no").count
set check_sub=conn.execute("select * from teacher_subject where subject_no='"&request("subject_no")(i)&"' and tec_id='"&request("teach_no")&"'")
if check_sub.eof then
if request("subject_no")(i)<>"" then
conn.execute("insert into teacher_subject values('"&request("teach_no")&"','"&request("subject_no")(i)&"')")
end if
end if
next%>
<meta http-equiv="Refresh" content="2; URL=teacher_subject.asp">

 <p> </p>
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="90" align="center">
<tr align="center" valign="middle">
	<td height="90">
	<table border="0" cellspacing="1" cellpadding="10" bgcolor="#000099" width="70%">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> <font face="Tahoma" size="2" color="#000080">تمت عملية التنسيب بنجاح</font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="teacher_subject.asp">
        <font color="#000080">اضغط هنا اذا كنت لا ترغب بالانتظار .<br>
  (او اذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>
<%end if%>
</body>

</html>

حيث في هذه الصفحة قمت بإنشاء فورم تحتوي على على الحقول التالية

اختر المدرس وهو من نوع قائمة منسدلة واسمها teach_no حيث سوف يتم عرض أسماء الأساتذة من جدول المدرسين بها وسوف يكون قيمهم هي رقم المدرس ، وأعتقد أن عملية عرض البيانات لا تحتاج للشرح.

الحقل الثاني اسم المقرر وهو من نوع checkbox واسمه subject_no حيث سوف يتم عرض جميع المقررات من جدول الموظفين وسوف تكون قيمة الحقل هي رقم المادة.

اجعل الفروم ترسل إلى نفس الصفحة.

<%if request("teach_no")="" then%>

إذا كان قيمة teach_no المبعوته من الفروم فارغة سوف يقوم بعرض فقط الفورم.

esle

أي بعد اختيار الأستاذ واختيار المواد التي سوف يت تنسيبه له، سوف يقوم بتنفيذ الكود التالي:

for i=1 to request("subject_no").count

set check_sub=conn.execute("select * from teacher_subject where subject_no='"&request("subject_no")(i)&"' and tec_id='"&request("teach_no")&"'")

if check_sub.eof then

if request("subject_no")(i)<>"" then

conn.execute("insert into teacher_subject values('"&request("teach_no")&"','"&request("subject_no")(i)&"')")

end if

end if

next

حيث for i=1 to request("subject_no").count

في جملة ال for سوف تكون قيمتها من 1 إلى عدد الحقول المرسلة من الحقل checkbox أي لو كانت عدد الحقول المرسلة 10 سوف تكون قيمة i تبدأ من 1 إلى 10.

set check_sub=conn.execute("select * from teacher_subject where subject_no='"&request("subject_no")(i)&"' and tec_id='"&request("teach_no")&"'")

في هذه الجملة سوف يتأكد إذا كان رقم المدرس ورقم المقرر غير مضاف من قبل إلى جدول العلاقة بين المدرس والمقررات وهو جدول teacher_subject

حيث request("subject_no")(i)

if check_sub.eof then

في هذه الشرط إذا كانت لا يوجد رقم مدرس ورقم المقرر مع بعض إذا سوف ينفذ التالي

if request("subject_no")(i)<>"" then

إذا لم تكن قيمة subject_no المرسلة من الفروم غير خالية سوف يقوم بإضافة رقم المدرس ورقم المقرر في الجملة التالية

conn.execute("insert into teacher_subject values('"&request("teach_no")&"','"&request("subject_no")(i)&"')")

end if

نهاية الشرط if request("subject_no")(i)<>"" then

end if نهاية الشرط if check_sub.eof then

end if نهاية الشرط

<%if request("teach_no")="" then%>

وبذلك نكون قد انتهينا من هذه الصفحة.

وإن شاءلله في المشاركة التالية سوف أقوم بشرح كيفية تنسيب الطلبة لأعضاء الهيئة التدريسية وهي لا تختلف عن صفحة تنسيب المواد لأعضاء الهيئة التدريسية كثيراً.

تم تعديل هذه المشاركة بواسطة عبدالله جابر شقليه في 1 فبراير 2004 في 12:06

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

#19

سوف أقوم الان بشرح صفحة تنسيب الطلبة لأعضاء الهيئة التدريسية واسمها selectstudent.asp

وكود الصفحة التالي:

<html dir="rtl">
<!--#include file="connection.asp"-->
<%if session("tech_id")="" then
response.redirect("admin_login.asp")
end if%>
<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>قائمة طلاب ودالبات-قسم تكنلوجيا المعلومات</title>
<!--#include file="../css.asp"-->
<script>
function CheckForm () { 

var errorMsg = ""

if (document.form.subject_no.value == "-1"){
  errorMsg += "\n\عذراً لا يوجد لديك مواد مطروحة في هذا الفصل";	
	}

	if (errorMsg != ""){
  

  errorMsg += alert( errorMsg + "\n\n");
  return false;
	}

	return true;
}

</script>
<script language=JavaScript>
<!--
function CheckAll() {
	for (var i=0;i<document.form.elements.length;i++) {
  var e = document.form.elements;
  if ((e.name != 'allbox') && (e.type=='checkbox'))
  e.checked = document.form.allbox.checked;
  }
	}
function CheckCheckAll() {
	var TotalBoxes = 0;
	var TotalOn = 0;
	for (var i=0;i<document.form.elements.length;i++) {
  var e = document.form.elements;
  if ((e.name != 'allbox') && (e.type=='checkbox')) {
 	 TotalBoxes++;
 	 if (e.checked) TotalOn++;
 	 }
  }
	if (TotalBoxes==TotalOn) document.form.allbox.checked=true;
	else document.form.allbox.checked=false;
	}
//-->
</SCRIPT>
</head>

<body>
<!--#include file="logo.asp"-->

<%if request("subject_no")="" then%>
<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
    <tr>
      <td width="100%">
      <form method="POST" action="selectstudent.asp" name="form" onSubmit="return CheckForm();">
        <p dir="rtl" align="center">
        <a href="admin_home.asp">
        <br>
        لوحة التحكم</a></p>
        <div align="center">
          <center>
        <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="66%" id="AutoNumber2">
          <tr>
            <td width="50%" align="center"><b>اختر المادة :</b></td>
            <td width="50%" align="center"><b>
            <select size="1" name="subject_no">
         <%set rs=conn.execute("select * from teacher_subject where tec_id='"&session("tech_id")&"'")
         if not rs.eof then
         do while not rs.eof
         set subj_study=conn.execute("select * from subject where subject_no='"&rs("subject_no")&"'")
         %>
<option value="<%=subj_study("subject_no")%>"><%=subj_study("subject_name")%></option>
<%rs.movenext
loop
else%>
            <option value="-1">لا يوجد لديك مواد في هذا الفصل</option>
            <%end if%>
            </select></b></td>
          </tr>
        </table>
          </center>
        </div>
        <p><br>
 </p>
        <div align="center">
          <center>
        <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="71%" id="AutoNumber3">
          <tr>
            <td width="35%" align="center"><b>تحديد الكل:                      <INPUT 
                        title="تحديد الكل" onclick=CheckAll() type=checkbox 
                        name=allbox value="ON"></b></td>
            <td width="65%" align="center"><b>اسم الطالب</b></td>
          </tr>
          <tr>
          <%set student_no=conn.execute("select * from student")
          if not student_no.eof then
          do while not student_no.eof%>
            <td width="35%" align="center"><b>                                         
            <INPUT 
                        type=checkbox value=<%=student_no("student_no")%>
                    name=student_no></b></td>
            <td width="65%" align="center"><b> <%=student_no("student_name")%></b></td>
          </tr>
          <%student_no.movenext
          loop
          else%>
          <td width="100%" align="center" colspan="2"><b>لا يوجد طلاب</b></td>
          </tr>
          <%end if%>
        </table>
          </center>
        </div>
        <p align="center"><br>
        <input type="submit" value="إرسال"></p>
      </form>
      </td>
    </tr>
  </table>
  </center>
</div>
<%else
for i=1 to request("student_no").count
if request("student_no")(i)<>"" then
set check_st=conn.execute("select * from st_tea_sub where student_no='"&request("student_no")(i)&"' and subject_no='"&request("subject_no")&"'")
if check_st.eof then
conn.execute("insert into st_tea_sub values ('"&session("tech_id")&"','"&request("student_no")(i)&"','"&request("subject_no")&"')")
else
conn.execute("update st_tea_sub set tec_id='"&session("tech_id")&"' where student_no='"&request("student_no")(i)&"'")
end if
end if
next

%>
<meta http-equiv="Refresh" content="2; URL=selectstudent.asp">

 <p> </p>
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="90" align="center">
<tr align="center" valign="middle">
	<td height="90">
	<table border="0" cellspacing="1" cellpadding="10" bgcolor="#000099" width="70%">
	<tr>
  <td bgcolor="#dee7f7" align="center">
  <p> <font face="Tahoma" size="2" color="#000080">تم تنسيب الطلبة بنجاح</font><font face="tahoma, arial, helvetica" size="2"><br><br> </font>
  
  <font face="Tahoma" size="2"> <a href="selectstudent.asp">
        <font color="#000080">اضغط هنا اذا كنت لا ترغب بالانتظار .<br>
  (او اذا كان متصفحك لا يدعم الانتقال التلقائي) </font></a> </font> </p></td>
	</tr>
	</table>
	</td>
</tr>
</table>
<%end if%>
</body>

</html>

هذه الصفحة لا تختلف عن صفحة تنسيب المواد لأعضاء الهيئة التدريسية ولكن سوف أشرح فقط ما الفرق بينهم

حيث هذه الصفحة تتكون من فروم تقوم بعرض المقررات داخل قائمه منسدلة وعرض الطلبة مع وضع قيمهم داخل checkbox

الاختلاف

حيث سوف يتم عرض المواد داخل القائمة المنسدلة ليس لكل المقررات بل فقط للأستاذ الذي دخل على لوحة التحكم تتذكرون أنه عندما قام الأستاذ بتسجيل الدخول إلى لوحة التحكم وقمنا بتخزين رقم المدرس داخل كائن الجلسة session الذي نستطيع استدعائه في جميع الصفحات خيث سوف يتم عرض المواد المقرر للأستاذ كالتالي:

<select size="1" name="subject_no">

<%set rs=conn.execute("select * from teacher_subject where tec_id='"&session("tech_id")&"'")

if not rs.eof then

do while not rs.eof

set subj_study=conn.execute("select * from subject where subject_no='"&rs("subject_no")&"'")

%>

<option value="<%=subj_study("subject_no")%>"><%=subj_study("subject_name")%></option>

<%rs.movenext

loop

else%>

<option value="-1">لا يوجد لديك مواد في هذا الفصل</option>

<%end if%>

</select>

set rs=conn.execute("select * from teacher_subject where tec_id='"&session("tech_id")&"'")

حيث سوف يتم الاستعلام من جدول teacher_subject عندما رقم المدرس يساوي الرقم المخزن داخل كائن الجلسة session("tech_id")

if not rs.eof then

إذا وجد رقم يساوي رقم المدرس سوف ينفذ التالي

do while not rs.eof

سوف يقوم بعمل جملة do while الحلقة التكرارية أي مادامت يوجد هناك حقول سوف يقوم بالمرور عليها جميعا أينما يوجد حقول تساوي رقم المدرس

set subj_study=conn.execute("select * from subject where subject_no='"&rs("subject_no")&"'")

في هذه جملة ال sql سوف تقوم بإحضار اسم المقرر من جدول المقررات subject عندما تساوي رقم المقرر الذي قمنا بجلبه من جملة ال sql الأولى عندما يجد رقم المدرس.

where subject_no='"&rs("subject_no")&"'

حيث rs("subject_no") تم أخذ قيمتها من الجدول teacher_subject بعد أن قمنا بالاستعلام عن رقم المدرس

<option value="<%=subj_study("subject_no")%>"><%=subj_study("subject_name")%></option>

هنا سوف يتم طباعة اسم المقرر اخل القائمة المنسدلة وقيمته سوف تكون رقم المقرر

rs.movenext

loop

تابعة لجملة ال do while حيث بعد أن تقوم بالمرور على السجل الأول سوف تذهب إلى السجل الأخر وهكذا إلى أن لا تجد قيم تساوي رقم المدرس.

لأن الاستاذ ممكن أن يدرس أكثر من مقرر في الفصل.

else

إذا لم يكن هناك مواد مسجلة للأستاذ سوف يظهر له التالي

<option value="-1">لا يوجد لديك مواد في هذا الفصل</option>

end نهاية الشرط لجملة if

----------------------------------------------------

الأن بعد عملية الضغط على زر submit للفورم سوف يقوم الأن بعملية التسيب الطلبة الذين قام الأستاذ باختيار الطلبة المسجلين معه في هذه المادة.

for i=1 to request("student_no").count

if request("student_no")(i)<>"" then

set check_st=conn.execute("select * from st_tea_sub where student_no='"&request("student_no")(i)&"' and subject_no='"&request("subject_no")&"'")

if check_st.eof then

conn.execute("insert into st_tea_sub values ('"&session("tech_id")&"','"&request("student_no")(i)&"','"&request("subject_no")&"')")

else

conn.execute("update st_tea_sub set tec_id='"&session("tech_id")&"' where student_no='"&request("student_no")(i)&"'")

end if

end if

for i=1 to request("student_no").count

أاعتقد أصبحت معروفة

if request("student_no")(i)<>"" then

إذا كان قيمة student_no المرسلة للفورم ليست فارغة نفذ التالي

set check_st=conn.execute("select * from st_tea_sub where student_no='"&request("student_no")(i)&"' and subject_no='"&request("subject_no")&"'")

هنا سوف يفحص إذا من جدول st_tea_sub الذي هو علاقه بين المدرس والطلاب والمواد

سوف يفحص إذا كان هناك رقم للطالب ورقم للمادة التي تم التنسيب له.

if check_st.eof then

إذا لم يكن هناك رقم الطالب مع رقم الماة التي تم التسيب له سوف يقوم بإضافة البيانات

conn.execute("insert into st_tea_sub values ('"&session("tech_id")&"','"&request("student_no")(i)&"','"&request("subject_no")&"')")

سوف يتم إضافة رقم المدرس المخزن داخل كائن الجلسة، ورقم الطالب المرسل من الفروم ورقم المادة التي تم اختيارها

else

إذا وجد رقم طالب ورقم المادة التي تم اختياره سوف يقوم بعملية تعديل على البيانات

conn.execute("update st_tea_sub set tec_id='"&session("tech_id")&"' where student_no='"&request("student_no")(i)&"'")

سوف يتم التعديل البيانات فقط على رقم المدرس عندما يكون رقم الطالب يساوي رقم الطالب الذي تم اختياره ورقم المادة التي تم التنسيب له.

في هذا التعديل تم في حالة إذا كان الطالب قد تم تنسيبه من قبل في هذه المادة إلى أستاذ آخر، قد يكون الطالب سقط في المادة من قبل ، أو أنه قام بتغير المدرس لأنه يمكن أن تدرس المقرر لأكثر من أستاذ في نفس الفصل.

end if

end if

next

نهاية الشروظ ونهاية جملة ال for

وبهذا نكون قد انتهينا من هذه الصفحة.

إن شاءلله في المرة القادمة سوف أقوم بشرح صفحة إضافة اختبارات للمقررات.

مع تحياتي لكم جميعاً.

MCP

MCTS:.Net Framework 2.0: Web Applications

MCPD:Web Developer

هذا الموضوع مغلق.

مواضيع مشابهة