|
|
|||
|
||||
| |||||
| الصفحات | النماذجإرسال البيانات عبر httpعندما تريد إرسال المعلومات من متصفح الويب، إلى مزود الويب فإنك تستخدم بروتوكول http في عمل ذلك، وينص بروتكول http على أن البيانات ترسل في صورة أزواج، كل زوج عبارة عن إسم وقيمة، مثلا إذا أردت إرسال إسم المستخدم عبر بروتوكول http فإنك ترسل العبارة التالية name=mubarmej هذا يسمى زوج لأنه يتكون من جزئين، الجزء الأول هو إسم المعلومة (name)، والجزء الثاني هو المعلومة نفسها (mubarmej)، وإذا أردت أن ترسل أكثر من معلومة فإنك تفصل بين أزواج المعلومات بعلامات & فإذا أردت أن ترسل الإسم والبلد فإنك ترسل العبارة التالية name=mubarmej&country=Kuwait يمكنك أن تكتب العبارة السابقة كالتالي country=Kuwait&name=mubarmej حيث أن الترتيب ليس مهما إلى هذه الدرجة، إضافة إلى ما سبق فإن هنالك شروطا على إرسال البيانات في صورة عناوين url ولأن المعلومات عادة ما ترسل ملتصقة بهذه العناوين فإنه لا بد من تحويل سطر البيانات السابق بحيث يصبح مطابقا لمواصفات url، وأول شيء هو أنك لا تستطيع وضع المسافات، لذا فقد اتفق على أن جميع المسافات في البيانات تحول إلى إشارة ( + )، فإذا كان البلد هو United States فإن سطر البيانات سيكون name=mubarmej&country=United+States، وهنالك أيضا شروط أخرى لتحويل الرموز الغير انجليزية والكثير من الأشياء التي يتم تطبيقها على البيانات حتى تصبح جاهزة للإرسال. تعريفالمسافات البيضاء : هي المسافات والأسطر الجديدة وعلامات الجدولة. ينص بروتوكول http أيضا على أن البيانات ترسل بطريقتين، الأولى تسمى get والثانية تسمى post، يتم إرسال البيانات بطريقة get بصورة بسيطة جدا حيث تكون عبارة عن جزء يضاف إلى إسم البرنامج الذي سيستفيد من البيانات، مثلا إذا كان لديك برنامج يأخذ الإسم والبلد ويخزتها على المزود، وكان عنوان هذا البرنامج هو http://somewhere.com/script.cgi فإن طريقة get ستقوم فقط بعمل إضافة إلى العنوان السابقة هذه الإضافة هي عبارة عن علامة استفهام يليها سطر البيانات الذي جهزته، فيصبح إسم الصفحة
مهمة النماذجبعد أن عرفت كيف يتم إرسال البيانات، يجب أن تعرف مهمة النماذج في كل هذا، تعطيك النماذج واجهة سهلة لإدخال البيانات مثل مربعات النص وقوائم الإختيار ومربعات نعم/لا والأزرار، وغيرها من الأدوات، كل ما عليك فعله هو تحديد مكان البرنامج (http://somewhere.com/script.cgi) في مثالنا السابق، والطريقة التي تريد اتباعها (get أو post)، والبيانات التي تريد إرسالها، وتحدد بعض الألوان والأحجام وتصمم الحقول وتضع زر الإرسال (submit) وانتهى الأمر، كل ما على زائر الصفحة الآن هو أن يملأ بعض الحقول ويختار بعض الخيارات، ويضغط زر الإرسال فيقوم المتصفح بجمع البيانات وتحويلها وتجهيزها ثم إرسالها إلى المكان الذي حددته وحسب الطريقة التي حددتها، النماذج بالفعل هي أفضل طريقة تفاعلية في لغة HTML. يتم إدراج النموذج بالوسم form ويتم إدراج المعلومات في صورة وسوم input مفردة، يحتوي الوسم form على مجموعة من الخواص أهمها action وفيه تحدد عنوان البرنامج الذي سيستفيد من البيانات، والخاصية الثانية هي method وفيها تحدد طريقة نقل البيانات إما post أو get، أما الوسوم input فأهم خاصية فيها هي type وتحدد فيها نوع الكائن الذي سيأخذ المعلومة من المستخدم، ويأخذ أحد القيم التالية :
يمكنك أيضا إرسال المعلومات مع النموذج بواسطة وسمين آخرين يوضعان أيضا بين وسمي form وهذا الوسمان هما select لعمل قائمة اختيار والوسم textarea لعمل مربع نص متعدد الأسطر، وبين وسمي select نضع عدة وسوم option كل واحد منها يعبر عن بند في القائمة ويكون لكل بند قيمة معينة وترسل قيمة البند الذي تم اختياره. ملاحظةلقد قمت بعمل برنامج صغير موجود على المزود يقوم بأخذ المعلومات التي ترسلها بأي من الطريقتين ويعيد لك النتائج في صورة جدول وسنستخدمه لتوجيه جميع الطلبات إليه لمعرفة كيفية عمل النماذج. إسم البرنامج echo.pl وهو موجود في الدليل الذي به هذا الملف لذا سنقوم باستخدام المسارات النسبية ونحدد الخاصية action في تجاربنا على القيمة echo.pl دائما. سنقوم في البداية بعمل أمثلة عامة وبعد ذلك سنركز على كل كائن من كائنات النموذج. أنظر إلى المثال التالي :
يبو واضحا في المثال السابق كيف يتم نقل المعلومات عبر الويب باستخدام طريقة get، وإذا أعدت التجربة السابقة باستخدام الطريقة post فسوف تحصل على نتائج مطابقة لأن البرنامج الذي أعددته (echo.pl) مجهز للتعامل مع الطريقتين. مربع النصنقوم بوضع مربع النص كما ذكرنا سابقا، باستخدام الوسم input مع تغيير الخاصية type له إلى القيمة text، ويمكننا وضع أي محتويات ابتدائية نريدها فيه عن طريق الخاصية value له، ويمكن أيضا التحكم بحجمه عن طريق الخاصية size، لتحديد طول المربع الذي نريده.
مربع الإختياروهو يوضع بالوسم input أيضا بتحديد الخاصية type لها عند القيمة checkbox، ويمكن بالمعلومات التي سيتم إرسالها عن طريق الإسم بالخاصية name والقيمة بالخاصية value فيمكننا مثلا أن نجعل النموذج يرسل المعلومة do=subscribe إذا قام المستخم باختيار أحد مربعات الخيار، وذلك بضبط الخاصية name له عند القيمة do والخاصية value له عن القيمة subscribe، وعند عدم اختيار مربع الخيار فلن يتم إرسال أي شيء يتعلق به. أي أنه مثل النوع hidden إلا المستخدم هنا يحدد فقط إذا كانت المعلومة سترسل أو لا.
الإختيار من متعدديمكنك عمل دوائر الإختيار من متعدد بواسطة وسوم input بحيث تضبط خاصيتها type عند القيمة radio، ولعمل مجموعة من الوسوم التي يجب على المستخدم اختيار أحدها قم بعمل وسم input لكل واحد منها واجعل قيمة الخاصية name متساوية فيها جميعا مع تغيير قيمة الخاصية value في كل منها، فيكون عندنا نيابة عن جميع هذه الأزرار معلومة واحدة اسمها يحدد بالقيمة name وقيمتها حسب قيمة الخاصية value للزر الذي تم اختياره.
تلاحظ من المثال السابق أنك تستطيع فقط اختيار Male أو Female من القائمة الثانية، لأنها يمتلكان نفس الإسم name. القائمةعند تكوين القائمة نقوم أولا بوضع وسم القائمة select ونعين له خاصية name التي ستظهر في النموذج، وبعد ذلك نقوم بوضع عدة وسوم option لكل منها خاصية value وعند إرسال البيانات سيتم إرسال المعلومة التي إسمها موجود في الخاصية name من الوسم select وقيمتها موجودة في الخاصية value من الوسم option الذي تم اختياره.
مربع النص متعدد الأسطرويمسى أيضا بالمساحة النصية Textarea، وهو عبارة عن وسم textarea مزدوج ( فتح وإغلاق ) وبينهما تضع المحتويات التي تريدها أن تظهر داخل المربع، وهو يستخدم غالبا مع النماذج التي ترسل معلوماتها بالطريقة post لأنه يستخدم لإرسال كمية كبيرة من البيانات. يمكنك التحكم في عدد الأسطر بالخاصية rows وعدد الأحرف في كل سطر بالخاصية cols ( عدد الأعمدة ).
| ||||