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

اريد اظهار رساله للمستخدم لكى يستكمل الحقول

مغلق
بدأه half angel في 10 أغسطس 2006 · 19 رد · 2,325 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندى نموذج form1 بيه عدد حقول و زر submit و اريد عند الضغط على الزر اذا كان هناك اى بينات ناقصه او خاطئه تظهر رساله توضح الخطاء

من على نفس الصفحه .

#2

طيب اعطينا الكود بتاع الفورم كاملا واحنا نظبطه :D

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

دي مثلا طريقة وهنا اسم الحقل ( اى كان الحقل ) اسمه مثلا name وايضا هنا استخدم post

 
if(isset ($_POST["name"]))

{ echo " نرجو تكملة الحقول المطلوبة ";}
else { echo " الكود المفروض طهوره بعد اكتمال الحقول "; }

ولو يوجد عدة حقول هيبقي

 
if(isset ($_POST["name"]))

{ echo " نرجو تكملة الحقول المطلوبة ";}
elseif(isset($_POST["age"]))
{echo " نرجو تكملة الحقول المطلوبة "; }

else { echo " الكود المفروض طهوره بعد اكتمال الحقول "; }

طبعا كل ما زاد عدد الحقول زود elseif

جرب ورد عليا :) وانا فى انتظارك

#3

شكرا لك اخى hawy_php على الرد و لى استفسار صغير علشان فى حاجه انا بجد مش فاهمها

هو عند استخدام FORM يجب استدعاء ملف PHP خارجى لتنفيذ المطلوب و ذلك ب POST OR GET ولا ممكن تنفيذ الكود من على نفس الصفحه دون وضعو فى ملف خارجى ؟

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

#4

يمكن العمل فى نفس الملف باستخدام تقنية ajax وانا لست اعلمها جيدا

اعطيني كود الفورم الذي قمت بعمله وانا اشرحلك عليه واعملك الذي تريده بالظبط :)

#5
half_angel.htmlمعلش بقى هتعبك معايه اهو ده كود النموذج فى المرفقات
#6

افضل طريقة هي التحقق من النموضج عن طريق Java Script اما PHP فهي تتطلب ارسال الفورم بالكامل لصفحة جديدة وعن طريقها يتم التحقق من النموذج هذا قد يتعب الزائر في تصفح موقع خاصة اذا كان النموذج هام بالنسبة لك .

مثال صغير :

< Script Language = "JavaScript">
function checkAddMail(frm){	
if (frm.email.value.indexOf("@") <= 0  || frm.email.value.length < 4 || frm.email.value.indexOf(".") <= 0)
{
	alert("قم بإدخال البريد بشكل صحيح")
	frm.email.focus();
	return false;
}else						
		return true;
}
</Script>

حيث frm هوا عبارة عن اسم الـ Form الممر . اما email فهوا Input Box والخاصية Value هي خاصية الحصول على النص .

الخاصية focus تعيد التركيز على صندوق النص الخاص بالبريد مثلا . ليقوم المستخدم بتعبئته .

اما استخدام االدالة

<form action ="page.php" method = "post" onsubmit = "return  checkAddMail(this);" >
	<input type="text" name="email" size="27">
	<input type="submit" value=" Ok " name="B1">
</form>

كتبت لك هذا المثال على عجالة . انت بس رتب الكود بحسب ما تحب

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

http://www.alnahdahschool.com/subpage.php?action=sendus

تحياتي B)

#7

مشكور اخى فواز على المساعده انا فهمت قصدك ولكن فى شىء عايز افهمو

فى كل لغات البرمجه فى احداث مثلا حدث الضغط على زر الامر يتم تنفيذ كل الاوامر الموجوده فى الحدث ده

اوصل اذاى للاحداث دى علشان قبل ما يتم ارسال المتغيرات الى ملف ال php اتحقق من الحقول فاذا كان

الادخال تم بشكل صحيح يتم الاتصال بملف البى اتش بى عن طريق post or get اذا كان الادخال ناقص يتم

ارسال رسائل توضح الخطاء . بالنسبه للمثال اللى حضرتك وضعتو انا اطلعت عليه و هو ده اللى انا عايزو بالظبط

بالنسبه للاكواد المكتوبه بال javaScript مفيش مشكله فيها بس انا مش فاهم اتجاه الكود اى كيفيه تنظيم

استدعاء الدوال التى تقوم بالتائكد من محتويات الحقول .

لو تفضلت اخى الكريم تشرحلى ازاى اعمل الموضوع ده حته لو هستخدم الjavascript بس تفهمنى الحكايه

دى ماشيه ازاى علشان انا مبحبش انسخ الاكواد من غير ما افهم على الاقل اللى بيحصل حوليا انا هنتظر

و مشكور مره تانيه على المساعده

#8

والله يا اخ half_angel عجبني جدا طلبك لفهم الكود الذي تقوم بالعمل به لان هناك الكثيرون يستخدمون copy و paste وميعرفش هو كان بيعمل ايه

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

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

هنا

#9

شكرا جدا اخى hawy php على الاستمرار معى فى هذا الطلب و انا باذن الله هقراء الموضوع اللى حضرتك وضعت الوصله بتاعتو و هبلغك بالنتيجه غدا ان شاء الله

#10

وانا منتظرك باذن الله وبلاش حضرتك دي علشان انا اصغر منك :D

#11

الموضوع اللى فى الرابط بيتكلم عن طريقه تجهيز الفورم و تصميمو و استدعاء ملف php لاستقبال المتغيرات و تنفيذ الاوامر وده بالنسبه لى مش جديد .

ولكن كل اللى انا عايزو حد يشرحلى طريقه التائكد من اكمال الحقول قبل استدعاء ملف البى اتش بى

كما وضحها الاخ العزيز فواز الشمري . فعند الادخال الغير كامل للحقول او خطاء فى ادخال المطلوب تظهر msg box توضح الخطاء.

#12

انا عارف ده بس كان علشان تعرف ازاى تتعامل مع الفورم ;)

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

يشرح فيه ازاى تتحقق من البيانات :huh:

يارب اكون افدتك :^)

هـــنـــا

وده الدرس الثاني تكملة الدرس الى انا اديتهولك فى اول مشاركة ليا هنا

للمشرف السابق maverick

HERE

#13

شكرا اوى يا باشا هو ده اللى كنت بدور عليه تسلم

شكرا يا شباب على المساعده

#14

اى خدمة ;)

#15

اخي half angel اعتذر منك لتأخر في الرد :

وقد افاد الأخ hawy_php مشكور :

لي تعليق بسيط :

half angel تحدث عن الإحداث وكيفية عمليها :

لكل لغة برمجية احداث هذه الإحداث يتم تنفيذها في إلية محددة يتم تقسيمها بناء على حاجة المستخدم من الإستفادة من هذه الإحداث :

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

مثل if وغيرها .

لذلك فهي تحتاج إلى لغات برمجية اخرى مساعدة لها ومنها vb script و java script الأولى تستخدم الصيغ النحوية الخاصة با visual basic والأخرى تستخدم صيغ ++c من حيث كتابة الكود .

طيب : عندما نود ان نبني نموذج ما مثلا وليكن نموذج إرسل لنا او اتصل بنا المتطلبات ماهي :

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

أول هذه المشاكل التي قد نواجهها او ان يقوم المستخدم اما خطاْ او بقصد بالضغط على زر ارسال دون ان يقوم بتعبئة البيانات المطلوبة منه .

لذلك في هذه الحالة تقوم لغة HTML (وأنا اعتبرها لغة نصوص لأنه اي كود تقوم بكتابته ليعطي لك نتيجة قادر على التحكم بها اعتبرها لغة ولكن لغة نصون)

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

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

طيب كيف يعرف المتصفح اعضاء النموذج الذي تود ان ترسله .

بكل بساطة لدينا قاعدة في ءhtml هي Form هذه عبارة عن كتلة برمجية (نصية) يتم وضع العناصر المذكورة مثل الإسم - العنوان - نص الرسالة ) بها والصيغة لها كما يلي :

< Form Action = "page.php" Name = "frm" Method = "GET | POST" >

</From>

تبدا بالكلمة Form طبعا الكتلة Form لها خصائص هذه الخصائص كما يلي :

action : الوضيفة من هذه الخاصية هي ان تقوم بإرسال ما بداخل الكتلة البرمجية Form إلى العنوان ما بعد العلامة = اي إلى الصفحة التي تود فيها ان تقوم باستقبال النموذج ومن ثم عمل الازم اي ان تقوم بتخزينه في قاعدة البيانات او كما ترغب .

name : وهي تحدد اسم النموذج Form أو اسم الكتلة البرمجية . ليش . قد يكون معاك أكثير من Form في الصفحة فكيف تميز بين الـ Form وأعضائة . يتم ذلك عن دريق اسم الـ Form او النموذج .

Method : هذه الخاصية تحتوى على احد القيمتين الأولى POST والثانية GET الفرق بينهما كبير جداُ فـ GET عندما تقوم بإرسال النموذج وما يتحتوية على الصفحة التي تم كتابة عنوانها في الـخاصية Action . تقوم بإرسال النموذج عن طريق شريط العنوان : كيف

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

www.site.com/page.php?email=eee@hotmail.com&name=ali&add=sanaa

لاحض اعضاء النموذج ارسلت عن طريق شريط العنوان لذلك سوف يشاهد المستخدم هذه العناوين . حيث ان name,email,add هي اسماؤ الـ input box والتي يقوم الزائر بتسجيل بياناته فيها .

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

الفرق الأخر ان GET تستخدم لإرسال بينات اقل من POST

اما POST فهي عكس الأولى تماما .

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

تعال نبني اعضاء النموذج الأن :

< Form Action = "page.php" Name = "frm" Method = "POST" >
   <input type = "text" name = "email">
   <input type = "text" name = "add">
   <input type = "text" name = "name">
   <input type = "submit" value = "OK">
</From>

هذا على سبيل المثال :

لاحض معي السطر

<input type = "submit" value = "OK">

هذا عبارة عن زر ونوعه ارسال . اي هوا المسؤول عن ارسال النموذج هذا إلى الصفحة التالية :

يقوم بالتعرف على عنوان الصفحة المكتوبة في الخاصية action ويرسل لها النموذج بالكامل أما السطر </From> فهوا نهاية النموذج الخاص بعملية الإرسال

طيب هنا : العمل الإكبر لنا وهوا عملية التحقق وهنا يأتي دور الأحداث :

سوف نأخذ حدث وهوا onsubmit هذا الحدث الوضيفة الخاصة به هوا الإنطللاق لحضة ارسال النموذج عن طريق طبعا الضغط على الزر ارسال .

وهوا ياخذ اما True أو false فالأولى تعنى ارسل النموذج والثانية تقوم بعملية توقيف الإرسال :

لذلك سوف نعيد كتابة النموذج مرة اخرى بحيث نستفيد من الحدث onSubmit وهوا حدث ايضا تابع للـ Form كما يلي :

< Form Action = "page.php" Name = "frm" Method = "POST"  onsubmit = "return  checkAddMail(this);" >

   <input type = "text" name = "email">
   <input type = "text" name = "add">
   <input type = "text" name = "name">
   <input type = "submit" value = "OK">

</From>

لا حض وجود الكلمة return وهي تعيد القيمة للحدث . طيب القيمة هذه من فين بتحصل عليها return , تحصل عليها من الدالة (checkAddMail(this

طيب من فين جا اسم الدالة checkAddMail هذه هي عبارة عن دالة javascript والتي عن دريقها سوف نعيد القيمة true أو القيمة False لتقوم return بتسليمها للحدث ليقوم هوا باتخاذ القرار اما بالموافقة على ارسال النموذج أو لا .

الدالة تحتوى على باراميتر وهوا اسم النموذج . لذلك مررت اسم النموضج عن طريق الكلمة this وهي تعني هذا النموذج .

طبعا حسب التصنيف في html يتم وضع java script بين الـ tag الي هوا head . كما يلي :

في بداية الصفحة

<html>
   <head>
	  < Script Language = "JavaScript">
			function checkAddMail(frm){	
			   if (frm.email.value.indexOf("@") <= 0  || frm.email.value.length < 4 || frm.email.value.indexOf(".") <= 0)
			   {
				 alert("قم بإدخال البريد بشكل صحيح")
				 frm.email.focus();
				 return false;
			}else						
				return true;
		 }
</Script>

</head>
..........
.........

وبذلك سوف يقوم النموذج بالتحقق من محتويات الـ frm ولا حض ان frm في الدالة يمثل النموذج الي استدعى الدالة .

فلو كان هناك اي خلل في النموج سوف تعيد false وإلا تعيد true >

لو ما فهمت شي اخبرني وسوف نساعدك بعون الله .

بالتوفيق

B)

#16

الحمد لله انا مكنت افهم هذه الجزئية فى الجافا سكربت لانى معرف عنها اى شئ :D

مشكور اخ فواز شرحك اكثر من رائع ومبسط جدا :)

#17

اشكراك اخى فواز على تعبك لكى تشرح لنا هزه الجزئيه بصراحه شرح ممتاز

و عندى سؤال لك بالنسبه للاحداث لقد زكرت الحدث onsubmit لزر الامر هل من الممكن زكر باقى الاحداث الهامه فقط لزر الامر و ايضا الاحداث المشتركه لباقى الادوات و لو هناك مثال بسيط عن كل منهم اكون شاكر لك

#18

أخي هناك العديد من لأحداث منها الحدث :

onload وهوا يستخدم في حال تحميل اصفحة ويستخدم في ال tag الخاص بـ body او كما يسمى جسم الصفحة كما يلي :

<html>
	   <head >

	   </head >
<body ....... ....... ....... onload = " ">

</html>

وهنا يمكنك استخدام الحدث كما في المثال السابق بناء على حاجتك .

احداث اخرى ايضا .

مثل حدث النقر المفرد والمضاعف (النقرة مرة او مرتين)

ondblclick , onclick

<A HREF="other_page.htm" onclick="java script:return false" ondblclick="self.location.href ='other_page.htm'">Link text</A>

احداث خاصة بلوحة المفاتيح مثل :

onkeydown

onkeypress

onkeyup

عندك احداث الماوس ايضا :

onmousedown

onmousemove

onmouseout

onmouseover

المثال التالي :

<P onmousemove="top.status='Over the P'">Here's some <EM onmousemove="top.status='Over the EM'">italicised</EM> text</P>

هناك اخرى . والإستخدام بنفس الكيفية في الأمثلة .

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

#19

اشكرا اخى فواز على تدعيم شرحك بمثال بسيط شرح رائع شكرا يا باشا

#20

الله يكرمك يا استاذ فواز كنت بحاجة لهذه الامثلة

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…