كيف يكون ذلك ؟؟ - فراس الغزي - 25-08-18
السلام عليكم
الاخوة الاعزاء اتمنى ان تكون بصحة جيدة وكل عام وانتم بالف خير وصحة وسلامة
اخوان عندي استمارة الكترونية فيها عدة مدخلات وهي شغاله طبيعي والطباعة والاستعراض ولا اشكال في هذا الامر
ولكن عندي استعلام مدوخني كثيرا ولا اعرف كيف ابتدأ به حيث انني لم اجربه من قبل
وهو انا عندي في الاستمارة مجموعة مدخلات عبارة عن input and select انا بدي خيارات شرطية لما المتقدم يختار مثلا
في خانة التحصيل الدراسي اختار الشهادة ماجستير وفي خانة الزوجية اختار متزوج وعدد الاطفال مثلا لكل طفل خمس نقاط
الي ابيه انه الصفحة تقوم بحساب عدد النقاط عن طريق المدخلات يعني لو اختار ماجستير بينظاف لللمتغير الخاص بالنقاط 5 لو اختار من السلكت متزوج بيتغير المتغير الخاص بالنقاط الى اضضافة خمس نقاط اخرى ولو اختار لديه اطفال وكتب في حقل عدد الاطفال مثلا 3 بيضرب 3 في 5 ويضيف المجموع الى متغير النقاط
وهكذا الى بعض المدخلان وليس جميعا اتمنى من الاخوان الي عندة فكرة او مصفوفة تفي بالغرض يرفدني فيها وفقكم الله
بانتظار ردودكم
ملاحظة النقاط تقسم كالاتي
الابتدائية =5
متوسطة =15
اعدادية =20
بكلوريوس =25
الماجستير = 30
دكتوراء =35
الزوجية =15
طفل 1=5
طفل 2=10
طفل3=15
طفل 4=20
طفل 5=25
الشهيد =5
معاق = 5
RE: كيف يكون ذلك ؟؟ - elgokr - 25-08-18
وعليكم السلام ورحمة الله وبركاته
فى البداية لا اعلم الطريقة التى تتعامل بها
اذا كان ملفات PHP عادية ان من خلال القوالب
على اى حال دا رابط تجريبى لما تطلبه
لنتخيل ان الفورم عبارة عن PHP ويحتوى على HTML الخاص بالتصميم
الكود الحالى للملف كاملاً ....
PHP كود :
<?php $SelectTEst = array( "الابتدائية", # 0 "متوسطة", # 1 "اعدادية", # 2 "بكلوريوس", # 3 "لماجستير", # 4 "دكتوراء", # 5 "اعزب", # 6 "متزوج", # 7 "لا يوجد", # 8 "طفل 1", # 9 "طفل 2", # 10 "طفل 3", # 11 "طفل 4", # 12 "طفل 5", # 13 "معاف", # 14 "الشهيد", # 15 "معاق" # 16 ); $num_ = 0; ?> <form action="test.php" method="POST">
<p>مستوى الدراسة:</p> <select name="Aldrasa"> <option value="10" selected hidden>اختار مستوى الدراسة</option> <option value="0">بدون شهادة</option> <option value="1"><? echo $SelectTEst[0] ?></option> <option value="2"><? echo $SelectTEst[1] ?></option> <option value="3"><? echo $SelectTEst[2] ?></option> <option value="4"><? echo $SelectTEst[3] ?></option> <option value="5"><? echo $SelectTEst[4] ?></option> <option value="6"><? echo $SelectTEst[5] ?></option> </select>
<p>الحالة الاجتماعية:</p> <select name="Alhala"> <option value="0" selected hidden>اختار الحالة</option> <option value="1"><? echo $SelectTEst[6] ?></option> <option value="2"><? echo $SelectTEst[7] ?></option> </select>
<p>عدد الاطفال:</p> <select name="Atfal"> <option value="0" selected hidden>عدد الاطفال</option> <option value="1"><? echo $SelectTEst[8] ?></option> <option value="2"><? echo $SelectTEst[9] ?></option> <option value="3"><? echo $SelectTEst[10] ?></option> <option value="4"><? echo $SelectTEst[11] ?></option> <option value="5"><? echo $SelectTEst[12] ?></option> <option value="6"><? echo $SelectTEst[13] ?></option> </select>
<p>موقف حالة الطلب:</p> <select name="Altalab"> <option value="0" selected hidden>اختار الحالة</option> <option value="1"><? echo $SelectTEst[14] ?></option> <option value="2"><? echo $SelectTEst[15] ?></option> <option value="3"><? echo $SelectTEst[16] ?></option> </select>
<br /><br /> <input type="submit" value="go" /> </form> <br /><br /> <?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){ if ($_POST['Aldrasa'] == 1){ $num_ += 5; }elseif ($_POST['Aldrasa'] == 2){ $num_ += 15; }elseif ($_POST['Aldrasa'] == 3){ $num_ += 20; }elseif ($_POST['Aldrasa'] == 4){ $num_ += 25; }elseif ($_POST['Aldrasa'] == 5){ $num_ += 30; }elseif ($_POST['Aldrasa'] == 6){ $num_ += 35; }
if ($_POST['Alhala'] == 1){ $num_ += 0; }elseif ($_POST['Alhala'] == 2){ $num_ += 15; }
if ($_POST['Atfal'] == 1){ $num_ += 0; }elseif ($_POST['Atfal'] == 2){ $num_ += 5; }elseif ($_POST['Atfal'] == 3){ $num_ += 10; }elseif ($_POST['Atfal'] == 4){ $num_ += 15; }elseif ($_POST['Atfal'] == 5){ $num_ += 20; }elseif ($_POST['Atfal'] == 6){ $num_ += 25; }
if ($_POST['Altalab'] = 1){ $num_ += 0; }elseif ($_POST['Altalab'] == 2){ $num_ += 5; }elseif ($_POST['Altalab'] == 3){ $num_ += 5; } }
echo $num_;
?>
مرفق الملف بالرد تجنباً لعدم استبدال احرف الكتابة للكود
اتمنى ان المثال المبسط موضح كيفية عمل الجمع لكل اختيار يتم
تحياتى لك
وتمنياتى لك التوفيق
RE: كيف يكون ذلك ؟؟ - فراس الغزي - 25-08-18
(25-08-18, 05:32 PM)elgokr كتب : وعليكم السلام ورحمة الله وبركاته
فى البداية لا اعلم الطريقة التى تتعامل بها
اذا كان ملفات PHP عادية ان من خلال القوالب
على اى حال دا رابط تجريبى لما تطلبه
لنتخيل ان الفورم عبارة عن PHP ويحتوى على HTML الخاص بالتصميم
الكود الحالى للملف كاملاً ....
PHP كود :
<?php $SelectTEst = array( "الابتدائية", # 0 "متوسطة", # 1 "اعدادية", # 2 "بكلوريوس", # 3 "لماجستير", # 4 "دكتوراء", # 5 "اعزب", # 6 "متزوج", # 7 "لا يوجد", # 8 "طفل 1", # 9 "طفل 2", # 10 "طفل 3", # 11 "طفل 4", # 12 "طفل 5", # 13 "معاف", # 14 "الشهيد", # 15 "معاق" # 16 ); $num_ = 0; ?> <form action="test.php" method="POST">
<p>مستوى الدراسة:</p> <select name="Aldrasa"> <option value="10" selected hidden>اختار مستوى الدراسة</option> <option value="0">بدون شهادة</option> <option value="1"><? echo $SelectTEst[0] ?></option> <option value="2"><? echo $SelectTEst[1] ?></option> <option value="3"><? echo $SelectTEst[2] ?></option> <option value="4"><? echo $SelectTEst[3] ?></option> <option value="5"><? echo $SelectTEst[4] ?></option> <option value="6"><? echo $SelectTEst[5] ?></option> </select>
<p>الحالة الاجتماعية:</p> <select name="Alhala"> <option value="0" selected hidden>اختار الحالة</option> <option value="1"><? echo $SelectTEst[6] ?></option> <option value="2"><? echo $SelectTEst[7] ?></option> </select>
<p>عدد الاطفال:</p> <select name="Atfal"> <option value="0" selected hidden>عدد الاطفال</option> <option value="1"><? echo $SelectTEst[8] ?></option> <option value="2"><? echo $SelectTEst[9] ?></option> <option value="3"><? echo $SelectTEst[10] ?></option> <option value="4"><? echo $SelectTEst[11] ?></option> <option value="5"><? echo $SelectTEst[12] ?></option> <option value="6"><? echo $SelectTEst[13] ?></option> </select>
<p>موقف حالة الطلب:</p> <select name="Altalab"> <option value="0" selected hidden>اختار الحالة</option> <option value="1"><? echo $SelectTEst[14] ?></option> <option value="2"><? echo $SelectTEst[15] ?></option> <option value="3"><? echo $SelectTEst[16] ?></option> </select>
<br /><br /> <input type="submit" value="go" /> </form> <br /><br /> <?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){ if ($_POST['Aldrasa'] == 1){ $num_ += 5; }elseif ($_POST['Aldrasa'] == 2){ $num_ += 15; }elseif ($_POST['Aldrasa'] == 3){ $num_ += 20; }elseif ($_POST['Aldrasa'] == 4){ $num_ += 25; }elseif ($_POST['Aldrasa'] == 5){ $num_ += 30; }elseif ($_POST['Aldrasa'] == 6){ $num_ += 35; }
if ($_POST['Alhala'] == 1){ $num_ += 0; }elseif ($_POST['Alhala'] == 2){ $num_ += 15; }
if ($_POST['Atfal'] == 1){ $num_ += 0; }elseif ($_POST['Atfal'] == 2){ $num_ += 5; }elseif ($_POST['Atfal'] == 3){ $num_ += 10; }elseif ($_POST['Atfal'] == 4){ $num_ += 15; }elseif ($_POST['Atfal'] == 5){ $num_ += 20; }elseif ($_POST['Atfal'] == 6){ $num_ += 25; }
if ($_POST['Altalab'] = 1){ $num_ += 0; }elseif ($_POST['Altalab'] == 2){ $num_ += 5; }elseif ($_POST['Altalab'] == 3){ $num_ += 5; } }
echo $num_;
?>
مرفق الملف بالرد تجنباً لعدم استبدال احرف الكتابة للكود
اتمنى ان المثال المبسط موضح كيفية عمل الجمع لكل اختيار يتم
تحياتى لك
وتمنياتى لك التوفيق
شكرا لك اخي وكل عام وانت بالف خير دائما متفوق واسال الله لك التوفيق لكني بصراحة لم افهم التطبيق على الاستمارة هل استطيع ان اعطيك الملف اخي ارفق لك المشروع مع قاعدة البيانات ليتم حل المشكلة او مشغول اخي وفقك الله انا ابي يكون النتيجة تظهر في الاستمارة النهائية عند الطباع تظهر عدد نقاط المتقدم كذا وفي الادارة كذلك
[attachment=19250]
[attachment=19251]
RE: كيف يكون ذلك ؟؟ - elgokr - 25-08-18
الشكر لله
اهلاً بك اخى من جديد
شوف عاشن اسهل عليك الامور اكثر اليك التالى
بما ان ملف الـ index.php هى الوجهة الرئيسية للاستمارة قبل الطباعة
فعليك ان تقوم بالتالى
تعال فى الملف وقم باضافة السطر التالى فى بدابة اكواد الملف
الى هنا تمام ناتى لما بعد ذلك
ناتى الى مرحلة ما بعد زر التسجيل ونضع الكود مثل التالى
PHP كود :
if ($_POST['status'] == "اعزب"){ $TotalNum_ += 0; }elseif ($_POST['status'] == "باكر"){ $TotalNum_ += 5; }elseif ($_POST['status'] == "متزوج"){ $TotalNum_ += 10; }elseif ($_POST['status'] == "متزوجة"){ $TotalNum_ += 10; // ................ الخ }
كرر الامر لباقي الامور من الـ Select
لكن لكى ينجح هذا الكود من الحميل
يجب ان تجعل كواد الاستمارة داخل هذا الكود
PHP كود :
<form action="index.php" method="POST"> // كود الاستمارة </form>
بحيث تتعامل مع الزر للتنقل من فورم الى اخر
عن طريق الملف فعلى وليس من خلال الجافا / اجاكس
يمكنك تقسيم مراحل اصفحة بحيث التنقل من مرحلة الى التاليى مثل هذا الكود
استخدم الكود التالى كامل فى ملف وقوم بحفظه وجرب ان تفتح الملف فى المتصفح لتحتبره
PHP كود :
<?php
if(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page1'){ // الصفحة الاولى echo "<h3 style='text-align: center;'>المرحلة الاولى</h3>"; echo ' <form action="?Go=Page2" method="POST"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }elseif(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page2'){ // الصفحة الثانية echo "<h3 style='text-align: center;'>المرحلة الثانية</h3>"; echo ' <form action="?Go=Page3" method="POST"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }elseif(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page3'){ // الصفحة الاخيرة echo "<h3 style='text-align: center;'>المرحلة الثالثة</h3>"; echo "<br /><br /> <div style='text-align: center;'>شكراً لك</div>"; }else{ // الصفحة الرئيسية echo "<h3 style='text-align: center;'>مرحباً بك فى صفحة التسجيل</h3>"; echo ' <form action="?Go=Page1" method="POST"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }
?>
بهذا الكود تتمكن من عمل مراحل التنقل من مرجلة لاخري
دون الحاجة للتعامل مع الاجاكس وكل ما ستحتاج اليك هو كود
التحقق ان قيمة $_POST لها قيمة قبل عرض الصفحة التالي
بمعنى ان تضع السطر التالى اعلى الزر
كود :
<input type="hidden" name="Next" value="Page1">
وفقط تضع كود التحقق كالتالى
PHP كود :
if(isset($_POST['Next']) && $_POST['Next'] == 'Page1'){}
سيكون الكود بهذا الشكل
PHP كود :
<?php
if(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page1' && $_POST['Next'] == 'Page1'){ // الصفحة الاولى echo "<h3 style='text-align: center;'>المرحلة الاولى</h3>"; echo ' <form action="?Go=Page2" method="POST"> <input type="hidden" name="Next" value="Page2"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }elseif(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page2' && $_POST['Next'] == 'Page2'){ // الصفحة الثانية echo "<h3 style='text-align: center;'>المرحلة الثانية</h3>"; echo ' <form action="?Go=Page3" method="POST"> <input type="hidden" name="Next" value="Page3"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }elseif(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page3' && $_POST['Next'] == 'Page3'){ // الصفحة الاخيرة echo "<h3 style='text-align: center;'>المرحلة الثالثة</h3>"; echo "<br /><br /> <div style='text-align: center;'>شكراً لك</div>"; }else{ // الصفحة الرئيسية echo "<h3 style='text-align: center;'>مرحباً بك فى صفحة التسجيل</h3>"; echo ' <form action="?Go=Page1" method="POST"> <input type="hidden" name="Next" value="Page1"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }
?>
فبالتالى لو قمت انت بالدخول مباشر الى الرابط التالى
كود :
http://local/1.php?Go=Page3
ستجد انه فى هذا الوقت يقوم بعرض الصفحة الرئيسة
والسبب انك دخلت على الرابط للمرحلة رقم 3 دون ان تقوم بالخطوات
انا اعلم انى قد اكون شتت عليك الامور
لكن طبق ما قمت بشرحه واحدة تلو الاخر
فالامر سيكون ابسط واسهل بكثير معك بمجرد استوعاب الامر
واذا توقف معك شئ اسال عنه وساقوم بتوضيحها لك
بنهاية الامر بعد الانتهاء وتطبيق هذا الشرح
كل ما عليك هو استخدام التالى
وهو القيمة الاجمالية للنقاط المطلوبة
تحياتى لك
وتمنياتى لك التوفيق
RE: كيف يكون ذلك ؟؟ - فراس الغزي - 26-08-18
(25-08-18, 10:51 PM)elgokr كتب : الشكر لله
اهلاً بك اخى من جديد
شوف عاشن اسهل عليك الامور اكثر اليك التالى
بما ان ملف الـ index.php هى الوجهة الرئيسية للاستمارة قبل الطباعة
فعليك ان تقوم بالتالى
تعال فى الملف وقم باضافة السطر التالى فى بدابة اكواد الملف
الى هنا تمام ناتى لما بعد ذلك
ناتى الى مرحلة ما بعد زر التسجيل ونضع الكود مثل التالى
PHP كود :
if ($_POST['status'] == "اعزب"){ $TotalNum_ += 0; }elseif ($_POST['status'] == "باكر"){ $TotalNum_ += 5; }elseif ($_POST['status'] == "متزوج"){ $TotalNum_ += 10; }elseif ($_POST['status'] == "متزوجة"){ $TotalNum_ += 10; // ................ الخ }
كرر الامر لباقي الامور من الـ Select
لكن لكى ينجح هذا الكود من الحميل
يجب ان تجعل كواد الاستمارة داخل هذا الكود
PHP كود :
<form action="index.php" method="POST"> // كود الاستمارة </form>
بحيث تتعامل مع الزر للتنقل من فورم الى اخر
عن طريق الملف فعلى وليس من خلال الجافا / اجاكس
يمكنك تقسيم مراحل اصفحة بحيث التنقل من مرحلة الى التاليى مثل هذا الكود
استخدم الكود التالى كامل فى ملف وقوم بحفظه وجرب ان تفتح الملف فى المتصفح لتحتبره
PHP كود :
<?php
if(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page1'){ // الصفحة الاولى echo "<h3 style='text-align: center;'>المرحلة الاولى</h3>"; echo ' <form action="?Go=Page2" method="POST"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }elseif(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page2'){ // الصفحة الثانية echo "<h3 style='text-align: center;'>المرحلة الثانية</h3>"; echo ' <form action="?Go=Page3" method="POST"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }elseif(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page3'){ // الصفحة الاخيرة echo "<h3 style='text-align: center;'>المرحلة الثالثة</h3>"; echo "<br /><br /> <div style='text-align: center;'>شكراً لك</div>"; }else{ // الصفحة الرئيسية echo "<h3 style='text-align: center;'>مرحباً بك فى صفحة التسجيل</h3>"; echo ' <form action="?Go=Page1" method="POST"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }
?>
بهذا الكود تتمكن من عمل مراحل التنقل من مرجلة لاخري
دون الحاجة للتعامل مع الاجاكس وكل ما ستحتاج اليك هو كود
التحقق ان قيمة $_POST لها قيمة قبل عرض الصفحة التالي
بمعنى ان تضع السطر التالى اعلى الزر
كود :
<input type="hidden" name="Next" value="Page1">
وفقط تضع كود التحقق كالتالى
PHP كود :
if(isset($_POST['Next']) && $_POST['Next'] == 'Page1'){}
سيكون الكود بهذا الشكل
PHP كود :
<?php
if(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page1' && $_POST['Next'] == 'Page1'){ // الصفحة الاولى echo "<h3 style='text-align: center;'>المرحلة الاولى</h3>"; echo ' <form action="?Go=Page2" method="POST"> <input type="hidden" name="Next" value="Page2"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }elseif(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page2' && $_POST['Next'] == 'Page2'){ // الصفحة الثانية echo "<h3 style='text-align: center;'>المرحلة الثانية</h3>"; echo ' <form action="?Go=Page3" method="POST"> <input type="hidden" name="Next" value="Page3"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }elseif(isset($_REQUEST['Go']) && $_REQUEST['Go'] == 'Page3' && $_POST['Next'] == 'Page3'){ // الصفحة الاخيرة echo "<h3 style='text-align: center;'>المرحلة الثالثة</h3>"; echo "<br /><br /> <div style='text-align: center;'>شكراً لك</div>"; }else{ // الصفحة الرئيسية echo "<h3 style='text-align: center;'>مرحباً بك فى صفحة التسجيل</h3>"; echo ' <form action="?Go=Page1" method="POST"> <input type="hidden" name="Next" value="Page1"> <div style="text-align: center;"><input type="submit" value="go" /></div> </form> '; }
?>
فبالتالى لو قمت انت بالدخول مباشر الى الرابط التالى
كود :
http://local/1.php?Go=Page3
ستجد انه فى هذا الوقت يقوم بعرض الصفحة الرئيسة
والسبب انك دخلت على الرابط للمرحلة رقم 3 دون ان تقوم بالخطوات
انا اعلم انى قد اكون شتت عليك الامور
لكن طبق ما قمت بشرحه واحدة تلو الاخر
فالامر سيكون ابسط واسهل بكثير معك بمجرد استوعاب الامر
واذا توقف معك شئ اسال عنه وساقوم بتوضيحها لك
بنهاية الامر بعد الانتهاء وتطبيق هذا الشرح
كل ما عليك هو استخدام التالى
وهو القيمة الاجمالية للنقاط المطلوبة
تحياتى لك
وتمنياتى لك التوفيق
يعني قصدك استاذ الاكود في ثلاث صفحات صفحة لملئ الاستمارة وصفحة للمراجعة وصفحة للطباعة واقوم باستدعاهم عن طريق الكود الي ذكرته ام ماذا يرجة التوضيح رجاءا
RE: كيف يكون ذلك ؟؟ - elgokr - 26-08-18
(26-08-18, 04:16 PM)فراس الغزي كتب : يعني قصدك استاذ الاكود في ثلاث صفحات صفحة لملئ الاستمارة وصفحة للمراجعة وصفحة للطباعة واقوم باستدعاهم عن طريق الكود الي ذكرته ام ماذا يرجة التوضيح رجاءا
ثلاث مراحل وليس 3 صفحات
ولا يلزم بذلك انا شرحت هذا الجزء للتسهيل عليك
بنائاً لما تقوم به فى التصميم فى الملف المرفق مسبقاً
حيث يحتوى على مرحلة الرئيسية بزر موافق
ثم المرحلة الاولى التسجيل
ثم المرحلة الثانية تاكيد التسجيل
وياتى بالنهاية الطباعة
فانت كل ما يهمك هو اخذ القيمة الفعلية لكل Select
وتقوم بعمل تحقق اذا كانت القيمة تساوى الخيار كذا
اعطى للمتغير المذكور مسبقاً تزايد بقيمة 5 نقاط مثلاً
وتكرر ذلك مع كل Select عشان تاخد قيمة المتغير بالنهاية
وترسلها للطباعة كاجمالى النقاط
راجع ردى السبق عن السطر
إقتباس :ناتى الى مرحلة ما بعد زر التسجيل ونضع الكود مثل التالى
اما ان تتعامل معه بهذا الشكل كا كود PHP
اما ان بقى على ما انت تقوم به وتقوم بعمل نفس الفكرة فى الاجاكس
لكل قيمة POST ناتج عن الـ Select
اذا كنت انت من انشاء تلك الملفات
يجب ان تكون على علم ما اقوم بشرحه هنا
انا من السهل على انشاء لك الملفات بناءاً على المرفق مسبقاً
او اعطاء الكود المطلوب استخدامه مباشراً
لكن انا لا احبب ذلك فى هذا الامر انت لم تتعلم شئ
وستتخطى ما قمت بفعله لان لديك الناتج النهائي بالنهاية
ولا ياس فى المحاولة وان تتعلم من ما تخطاء
تحياتى لك
وتمنياتى لك التوفيق
|