سلسلة محاضرات ASP (15) استخدام نماذج HTML
الكاتب:Eve Cole
وقت التحديث:2009-05-30 19:58:48
باستخدام كائن طلب ASP، يمكنك إنشاء برنامج نصي بسيط لكنه قوي لتجميع بيانات جدول HTML ومعالجتها. في هذا الموضوع، لن تتعلم فقط كيفية إنشاء برنامج نصي أساسي لمعالجة الجدول، ولكنك ستكتسب أيضًا بعض الأساليب المفيدة للتحقق من صحة معلومات الجدول على خادم الويب ومتصفح المستخدم.
حول جداول HTML
تعد جداول HTML، الطريقة الأكثر شيوعًا لجمع معلومات الويب، عبارة عن ترتيبات خاصة لعلامات HTML التي توفر عناصر تحكم في واجهة المستخدم على صفحة ويب. تعد مربعات النص والأزرار وخانات الاختيار عناصر تحكم نموذجية تسمح للمستخدمين بالتفاعل مع صفحات الويب وإرسال المعلومات إلى خادم الويب.
يقوم مثال HTML التالي بإنشاء نموذج يمكن للمستخدم إدخال اسمه وعمره ويحتوي على زر يرسل هذه المعلومات إلى خادم الويب. يحتوي النموذج أيضًا على عنصر تحكم ضمني (لا يتم عرضه بواسطة مستعرض الويب) يمكن استخدامه لتمرير معلومات إضافية إلى مستعرض الويب.
<طريقة النموذج = "POST" ACTION = "myfile.asp">
<نوع الإدخال = "نص" NAME = "الاسم الأول">
<INPUT TYPE="text" NAME="lastname">
<INPUT TYPE="text" NAME="age">
<INPUT TYPE="hidden" NAME="userstatus" VALUE= "new">
<نوع الإدخال = "إرسال" VALUE = "أدخل">
</فورم>
النماذج التي تعالج إدخال ASP عندما يرسل النموذج معلومات إلى خادم الويب، يطلب مستعرض الويب الخاص بالمستخدم ملف .asp المحدد باستخدام سمة الإجراء الخاصة بعلامة HTML <FORM> (في المثال السابق، كان الملف يسمى Myfile.asp ) . تحتوي ملفات .asp على برامج نصية تعالج قيم الجدول، مثل عرض جدول نتائج أو الاستعلام عن معلومات من قاعدة بيانات.
هناك ثلاث طرق لجمع القيم من جداول HTML باستخدام ملفات .asp
يمكن أن يحتوي ملف .htm الثابت على جدول يتم إرسال قيمه إلى ملف .asp.
يمكن لملف .asp إنشاء نموذج يرسل المعلومات الخاصة به إلى ملف .asp آخر.
يمكن لملف .asp إنشاء نموذج يرسل المعلومات الخاصة به إلى نفسه، وهو الملف الذي يحتوي على النموذج.
تعمل الطريقتان الأوليان بنفس الطريقة، وعندما يتفاعل النموذج مع برنامج البوابة، يمكن أن يتضمن، بخلاف ASP، أوامر لقراءة تحديدات المستخدم والرد عليها.
يعد إنشاء ملف .asp الذي يحتوي على تعريف جدول ويرسل معلومات إلى نفسه طريقة أكثر تعقيدًا، ولكنها فعالة في التعامل مع الجداول. تم توضيح هذه العملية في التحقق من صحة مدخلات النموذج.
الحصول على إدخال النموذج
يوفر كائن طلب ASP مجموعتين تعملان على تبسيط مهمة استرداد معلومات النموذج المرفقة بطلب URL إلى حد كبير.
مجموعة الاستعلامات
تحصل مجموعة QueryString على القيمة التي تم تمريرها إلى خادم الويب كنص يتبع علامة الاستفهام في عنوان URL المطلوب. يمكن إلحاق قيم الجدول بعنوان URL المطلوب باستخدام طريقة HTTP GET أو إضافة قيم الجدول يدويًا إلى عنوان URL.
على سبيل المثال، إذا استخدم مثال الجدول السابق أسلوب GET (ACTION = "GET") وقام المستخدم بكتابة Jeff وSmith و30، فسيتم إرسال طلب عنوان URL التالي إلى الخادم:
http://scripts/Myfile.asp?firstname=Jeff&lastname=Smith&age=30&userstatus=new
يحتوي Myfile.asp على البرنامج النصي لمعالجة الجدول التالي:
مرحبًا، <%= Request.QueryString("firstname") %> <%= Request.QueryString("lastname") %>.
عمرك <%= Request.QueryString("age") %> سنة.
<%
إذا Request.QueryString("userstatus") = "مستخدم جديد" إذن
Response.Write"هذه هي زيارتك الأولى لموقع ويب هذا!"
انتهي إذا
%>
في هذه الحالة، سيعيد خادم الويب النص التالي إلى متصفح الويب الخاص بالمستخدم:
مرحبًا جيف سميث، عمرك 30 عامًا، وهذه هي زيارتك الأولى لموقع الويب هذا.
تحتوي مجموعة QueryString على معلمة اختيارية يمكن استخدامها للوصول إلى إحدى القيم المتعددة التي تظهر في نص الطلب. يمكنك أيضًا استخدام خاصية Count لحساب عدد مرات ظهور نوع معين من القيمة.
على سبيل المثال، يمكن للنموذج الذي يحتوي على مربع قائمة متعدد العناصر إرسال الطلب التالي:
http://list.asp?food=apples&food=olives&food=bread
يمكنك أيضًا استخدام الأمر التالي لحساب قيم متعددة:
Request.QueryString("food").العدد
إذا كنت تريد عرض أنواع قيم متعددة، فيجب أن يحتوي List.asp على البرنامج النصي التالي؛
<%Total = Request.QueryString("food").Count%>
<%For i = 1 إلى Total%>
<%= Request.QueryString("food")(i) %> <BR>
<%التالي%>
سيتم عرض البرنامج النصي أعلاه:
التفاح
زيتون
خبز
جمع النماذج عند استخدام طريقة HTTP GET لتمرير قيم النماذج الطويلة والمعقدة إلى خادم الويب، قد يتم فقدان المعلومات. تميل معظم خوادم الويب إلى التحكم بإحكام في طول سلاسل استعلام URL بحيث يتم اقتطاع قيم الجدول الطويلة التي تم تمريرها باستخدام طريقة GET. إذا كنت تريد إرسال كميات كبيرة من المعلومات من نموذج إلى خادم ويب، فيجب عليك استخدام أسلوب HTTP POST. تُستخدم هذه الطريقة لإرسال بيانات الجدول في نص طلب HTTP، ويمكن أن يكون عدد الأحرف المرسلة غير محدود. يمكنك أيضًا استخدام مجموعة النماذج الخاصة بكائن طلب ASP لاسترداد القيم المرسلة باستخدام طريقة POST.
تقوم مجموعة النماذج بتخزين القيم الرقمية بنفس طريقة مجموعة QueryString. على سبيل المثال، إذا قام مستخدم بملء جدول بقائمة طويلة من الأسماء، فيمكنك استرداد تلك الأسماء باستخدام البرنامج النصي التالي:
<% For i = 1 to Request.Form.Count %>
<% =Request.Form("names")(i) %>
<% التالي %>
التحقق من صحة مدخلات النموذج يجب أن يتحقق البرنامج النصي الجيد لمعالجة النموذج من صحة المعلومات المدخلة في النموذج قبل معالجة البيانات. يمكن للبرامج النصية للتحقق من الصحة التحقق من صحة نوع المعلومات التي يدخلها المستخدمون في النموذج. على سبيل المثال، إذا كان موقع الويب الخاص بك يحتوي على نموذج يسمح للمستخدمين بحساب المعلومات المالية، فيجب عليك قبل معالجة النتائج التحقق من أن المستخدم قام بالفعل بإدخال معلومات رقمية وليس نصية.
إحدى الطرق الملائمة للتحقق من صحة إدخال النموذج هي إنشاء نموذج يقوم بتمرير المعلومات إلى نفسه. في هذه الحالة، يحتوي الملف .asp على جدول يمكن الحصول على المعلومات منه. على سبيل المثال، يتحقق البرنامج النصي التالي من قيام المستخدم بإدخال قيمة في حقل الجدول "العمر" عن طريق تمرير المعلومات إلى نفسه:
<% إذا كان Isnumeric(Request.QueryString("Age")) ثم %>
<p>مرحبًا، عمرك هو <%=Request.QueryString("age")%>
<%آخر%>
<p>الرجاء إدخال العمر الرقمي.
<%النهاية إذا %>
<طريقة النموذج="إجراء النشر"="verify.asp" >
الاسم: <INPUT TYPE="text" NAME="Name">
العمر: <INPUT TYPE="text" NAME="Age">
<نوع الإدخال = "إرسال" VALUE = "أدخل">
</فورم>
في هذا المثال، البرنامج النصي موجود أيضًا في نفس ملف Verify.asp الذي يحتوي على الجدول. يقوم النموذج بتمرير المعلومات إلى نفسه عن طريق تحديد Verify.asp في سمة الإجراء.
يمكنك أيضًا إنشاء برامج نصية من جانب العميل للتحقق من قيام المستخدمين بإدخال معلومات صالحة. يمكن أن يؤدي التحقق من صحة إدخال المستخدم على مستعرض الويب إلى تقليل حركة مرور الشبكة إلى خادم الويب، بالإضافة إلى مطالبة المستخدمين بأخطاء إدخال النموذج بسرعة أكبر. يعمل البرنامج النصي التالي على متصفح الويب الخاص بالمستخدم ويتحقق من معلومات المستخدم قبل إرسالها إلى خادم الويب.
<لغة البرنامج النصي = "VBScript">
<!--
الفرعية btnEnter_OnClick
DimTheForm
قم بتعيين TheForm = Document.MyForm
إذا كان IsNumeric(TheForm.Age.Value) إذن
النموذج.إرسال
آخر
Msgbox "الرجاء إدخال العمر الرقمي."
انتهي إذا
نهاية الفرعية
//-->
</النص>
<طريقة النموذج="اسم النشر"=إجراء MyForm="myfile.asp" >
الاسم: <INPUT TYPE="text" NAME="Name">
العمر: <INPUT TYPE="text" NAME="Age">
<نوع الإدخال = "زر" NAME = "btnEnter" VALUE = "أدخل">
</فورم>