| |||||||
| المدوّنات | البحث | مشاركات اليوم | اجعل كافة المشاركات مقروءة |
|
| | LinkBack | أدوات الموضوع |
| |||||
| حلول برمجية (4) PHP الخيارات المتعددة لأن تحديد خيار واحد أمر سهل؛ فمثلا لو عرضت أمامك قائمة بأسماء المدن؛ لتحديد واحدة منها فإن البرمجة سهلة: حيث تعطي لكل مدينة قيمة ، ثم تطبع هذه القيمة. لكن لو كانت هناك قائمة فيها عدة خيارات : مثلا حدد المدن التي زرتها! فلو أعطيت لكل مدينة قيمة فإن البرنامج سيطبع آخر قيمة مختارة؛ لأنه باختصار سيحدد القيمة الأولى، ثم يكتب عليها للثانية، ثم يكتب على الثانية من أجل الثالثة وهكذا... ثم يطبع آخر نتيحة وإليك الأسس العامة للخيارات المتعددة، وبعد ذلك يمكنك تطويع هذه الأسس لتوافق برنامجك. أولا : //* تحديد الاتجاه من اليمين إلى اليسار كود: echo " <html dir='rtl'> ثانيًا : المعلومات المراد عرضها. يمكنك استدعاء معلومات من قاعدة البيانات، أو من ملف نصي، أو من متغير. في هذا التطبيق طبقت على ( المتغير ). كود: $city = "مكة المكرمة، المدينة النبوية، الرياض، جدة، الدمام، جلاجل، ليلى، أبها، تبوك"; نحسب عدد الفواصل في المتغير السابق؛ لكي نستطيع فصل مدينة عن الأخرى. يمكنك وضع أي علامة للفصل كـ ( - )، أو ( * )، أو ( @ ) وهلم جرا كود: $number = substr_count($city, "،"); رابعًا : نفرق البيانات حسب وجود الفواصل ثم نجعل هذه البيانات في متغير اسمه $data كود:
$data = explode ("،",$city); المتغير $number هو السابق ذكره في أول البرنامج لحساب عدد الفواصل كود:
for ($i=0; $i<$number; $i++) { خامسًا : 1 - نحدد نوع الأنموذج، والملف المستقبل للمعلومات. وضعت اسما للأنموذج (name='city') وهذا //ليس بلازم؛ ولكني من أجل تسهيل قراءة النماذج 2 - حدد خيار الإدخال بأنه خانة اختيار (checkbox). هناك عدة خيارات منها النقطة (radio) والفرق //بينهما أن (checkbox) تتيح لك خيارات متعددة في الوقت نفسه؛ بينما لا تتيح لك (radio) سوى //اختيار واحد 3 - سبق أن طلبنا حلقة تكرار، بحيث يطبع أسماء المدن بعددها في المتغير الأصلي $city الذي //فصلناه عن طريق ( الفاصلة) بالمتغير $data 4 - وضعت اسم المتغير للاختيارات myboxes[] فارغا لكي يتحمل عدة خيارات، ولا يكون خاصا //بخيار معين. ثم أعطيته قيمة اسم المدنية ($data[$i]). كود: echo " <form name='city' method='POST' action='$CODE_SELF' > <input type='checkbox' name='myboxes[]' value='$data[$i]' > $data[$i]<br> "; إغلاق حلقة التكرار كود: } سابعًا : طباعة أمر الإرسال، ثم إغلاق الأنموذج كود:
echo "
<input type='submit' name='Submit' value='أرسل'>
</form>
"; ثامنًا : طباعة نتائج الاختيار، وضعتها هنا كي لا يطبع البرنامج الخيارات والنتائج، فهو هنا سيطبع //النتائج، ثم يتوقف. إذا كان الأنموذج الذي فيه الخيارات بنمط (POST) فإننا نطبع النتائج. هناك نوعان من الأنماط للأنموذج : (POST)، و (GET). كود:
if ($REQUEST_METHOD=="POST") { تاسعًا : في الأنموذج وضعنا متغيرا باسم $myboxes ، وهنا نحسب عدد الخانات المختارة التي وضعت في هذا المتغير. كود: $num=count($myboxes); بما أن الأنموذج يشتمل على عدة خيارات فلا بد من عمل حلقة تكرار لعرض الخيارات كلها، يمكن عمل حلقة التكرار بطريقة أخرى ... while كود:
for ($i=0; $i<$num; $i++) { حادي عشر : إذا خترت ثلاث مدن مثلا، فإن المتغير $myboxes سيتحمل ثلاث قيم، لهذا نضع متغيرا جديدا //للطباعة اسمه $print_city ، وهذا المتغير يزداد قيمة بعدد القيم التي في المتغير $myboxed ، فإذا اخترت خمس مدن يزداد خمس مرات؛ لكي يعرض النتيجة كاملة المتغير $i يرمز إلى القيمة المختارة، ولهذا يكرر الطباعة إلى أن تتوقف قيمة المتغيرات في //$myboxes، فلو اخترت ثلاث مدن مثلا : فسيطبع : كود: $myboxes[الرياض]- $myboxes[جدة]- $myboxes[الدمام]- كود: $print_city .= "$myboxes[$i]-"; إنهاء حلقة التكرار السابقة كود: } طباعة النتيجة كود: <br> لقد اخترت المدن التالية <br> $print_city "; رابع عشر : طباعة أمر التوجيه للصفحة الرئيسة كود: echo " <br> <a href='$CODE_SELF'> البداية</a> "; إنهاء البرنامج ؛ لكي لا ينفذ الأوامر التالية [code] exit (); [code] سادس عشر : إغلاق قوس : if ($REQUEST_METHOD=="POST") كود: } إعادة تركيب البرنامج : كود: <?php /*--------------------------------------------------------------------- / / تطبيق عملي لإظهار عدة خيارات / إعداد عبد الرحمن / ababab90@yahoo.com / http:///www.toarab.ws / /---------------------------------------------------------------------- */ //* تحديد الاتجاه من اليمين إلى اليسار echo " <html dir='rtl'> <center><h1>تطبيق عملي للخيارات المتعددة<br>، إعداد الفقير إلى عفو ربه : عبد الرحمن <br><br> "; // المعلومات المراد عرضها. يمكنك استدعاء معلومات من قاعدة البيانات، أو من ملف نصي، أو من متغير. //في هذا التطبيق طبقت على ( المتغير ). $city = "مكة المكرمة، المدينة النبوية، الرياض، جدة، الدمام، جلاجل، ليلى، أبها، تبوك"; // نحسب عدد الفواصل في المتغير السابق؛ لكي نستطيع فصل مدينة عن الأخرى. // يمكنك وضع أي علامة للفصل كـ ( - )، أو ( * )، أو ( @ ) وهلم جرا $number = substr_count($city, "،"); // نفرق البيانات حسب وجود الفواصل ثم نجعل هذه البيانات في متغير اسمه $data $data = explode ("،",$city); // طباعة نتائج الاختيار، وضعتها هنا كي لا يطبع البرنامج الخيارات والنتائج، فهو هنا سيطبع //النتائج، ثم يتوقف. // إذا كان الأنموذج الذي فيه الخيارات بنمط (POST) فإننا نطبع النتائج. هناك نوعان من الأنماط للأنموذج //: (POST)، و (GET). if ($REQUEST_METHOD=="POST") { // في الأنموذج وضعنا متغيرا باسم $myboxes ، وهنا نحسب عدد الخانات المختارة التي وضعت في هذا // المتغير. $num=count($myboxes); // بما أن الأنموذج يشتمل على عدة خيارات فلا بد من عمل حلقة تكرار لعرض الخيارات كلها، يمكن عمل //حلقة التكرار بطريقة أخرى ... while for ($i=0; $i<$num; $i++) { //إذا خترت ثلاث مدن مثلا، فإن المتغير $myboxes سيتحمل ثلاث قيم، لهذا نضع متغيرا جديدا //للطباعة اسمه $print_city ، وهذا المتغير يزداد قيمة بعدد القيم التي في المتغير $myboxed ، فإذا //اخترت خمس مدن يزداد خمس مرات؛ لكي يعرض النتيجة كاملة //المتغير $i يرمز إلى القيمة المختارة، ولهذا يكرر الطباعة إلى أن تتوقف قيمة المتغيرات في //$myboxes، فلو اخترت ثلاث مدن مثلا : فسيطبع : //$myboxes[الرياض]- //$myboxes[جدة]- //$myboxes[الدمام]- //وهكذا $print_city .= "$myboxes[$i]-"; } // إنهاء حلقة التكرار السابقة // طباعة النتيجة echo " <br> لقد اخترت المدن التالية <br> $print_city "; // طباعة أمر التوجيه للصفحة الرئيسة echo " <br> <a href='$PHP_SELF'> البداية</a> "; // إنهاء البرنامج ؛ لكي لا ينفذ الأوامر التالية exit (); } //إغلاق قوس : if ($REQUEST_METHOD=="POST") { // حلقة تكرار للمعلومات المراد عرضها // المتغير $number هو السابق ذكره في أول البرنامج لحساب عدد الفواصل for ($i=0; $i<$number; $i++) { // 1 - نحدد نوع الأنموذج، والملف المستقبل للمعلومات. وضعت اسما للأنموذج (name='city') وهذا //ليس بلازم؛ ولكني من أجل تسهيل قراءة النماذج // 2 - حدد خيار الإدخال بأنه خانة اختيار (checkbox). هناك عدة خيارات منها النقطة (radio) والفرق //بينهما أن (checkbox) تتيح لك خيارات متعددة في الوقت نفسه؛ بينما لا تتيح لك (radio) سوى //اختيار واحد // 3 - سبق أن طلبنا حلقة تكرار، بحيث يطبع أسماء المدن بعددها في المتغير الأصلي $city الذي //فصلناه عن طريق ( الفاصلة) بالمتغير $data // 4 - وضعت اسم المتغير للاختيارات myboxes[] فارغا لكي يتحمل عدة خيارات، ولا يكون خاصا //بخيار معين. ثم أعطيته قيمة اسم المدنية ($data[$i]). echo " <form name='city' method='POST' action='$PHP_SELF' > <input type='checkbox' name='myboxes[]' value='$data[$i]' > $data[$i]<br> "; } // إغلاق حلقة التكرار // طباعة أمر الإرسال، ثم إغلاق الأنموذج echo " <input type='submit' name='Submit' value='أرسل'> </form> "; ?> لتجربة البرنامج : http://www.toarab.ws/scripts/checkbox.php لتحميل الملف : | |||||
|
| |||||
|
مشكوور على الجهد الطيب وواصل إبداعك .. والله يكتب لك الأجر والمثوبة معا أن العرض السيء في المنتدى يخلي الواحد ما يقدم شيء .. فأرجوا من الإدارة يشوفوا حل عاجل .. حتى يستمر هذا المنتدى في العطاء أخوك بارع
__________________ ألا في سبيل الله ما أنا فاعل - - - عطاء وإقدام وحزم ونائل | |||||
|
| |||||
|
الله يجزاك خير يا استاذنا عبدالرحمن متميز دائماً . بالنسبة لمن يواجه مشكلة في العرض ترميز بعدين العرض من اليمين الى اليسار . او العكس و يضبط معاه تحياتي اخوكم ابو مشعل
__________________ أخوكم ابو مشعل ملاحظات لتنظيم المنتدى: http://www.swalif.net/softs/showthread.php?s=&threadid=42612 --------------- | |||||
|
| |||||
|
ماشالله عليك .. ![]() وجزاك الله الف خير .... والله يكثر من أمثالك
__________________ الأسم انسان يأسف على امس وتأمل في غد المؤهل لا زلت طالب في مدرسة الحياة مبدئي من ظن انه قد علم فقد جهل الوظيفه أبن لكل من هو اكبر مني و أخ لمن هم في سني وأب لمن هو اصغر مني | |||||
|
| |||||
| اقتباس:
__________________ أخوكم ابو مشعل ملاحظات لتنظيم المنتدى: http://www.swalif.net/softs/showthread.php?s=&threadid=42612 --------------- | |||||
|
| |||||
|
ما شاء الله يا ليتني حصلت علي هذا الشرح الممتاز قبل اسبوع او اسبوعين فعلاً انا محتاج لمثل هذه الامثلة وشكراً جزيلاً اخي الكريم وجزاك الله خيراً الحقيقة اني محتاج لتصميم فورم لانشاء الجداول داخل قاعدة البيانات وبالتالي فقد دخت السبع دوخات حتي استطعت وضع نموذج اساسي يرضيني وهذا هو الكود الذي وضعته صحيح انه ليس بنفس مستوى اتقان الاخ عبد الرحمن ولكن اضعه هنا املا في ان ان ينبهني احد الاخوة مشكورا الي مواضع العلة والخلل فيه او الي ما سهيت عنه او نسيته او ان يستفيد به احدهم كود PHP: ملاحظات 1- الفكرة مازالت في طور التجربة 2-المتغير $g سيتم استخدامه مع الدالة mysql_query لغرض انشاء الجدول المطلوب | |||||
|
![]() |
| |
| |
| أدوات الموضوع | |
| |