ابورنـــــــد نشر منذ 8 ساعة أرسل تقرير نشر منذ 8 ساعة السلام عليكم ورحمة الله وبركاته لدي نموذج اختبار يوجد استعلام على حسب رغبة الزائر قد يعرض عليه سؤال او اثنين او اكثر بعد عرض الاستعلام … الزائر سيختار الاجابة الصحيحة بعد الانتهاء سيرسل النموذج وسيتم طباعة النتيجة مباشرة على نفس الصفحة بدون تخزين البيانات في القاعدة بناءً على اجاباته كل اجابة صحيحة بدرجة والخاطئة بصفر النتيجة ستكون مجموع درجاته المشكلة التي واجهتها كيف اجمع POST حتى يعطي درجة نهائية لهذا الاختبار شكرا لكم 2 اقتباس
0 Mustafa Suleiman نشر منذ 8 ساعة أرسل تقرير نشر منذ 8 ساعة ما هي اللغة أو التقنية المستخدمة في مشروعك؟ 1 اقتباس
0 ابورنـــــــد نشر منذ 8 ساعة الكاتب أرسل تقرير نشر منذ 8 ساعة بتاريخ الآن قال Mustafa Suleiman: ما هي اللغة أو التقنية المستخدمة في مشروعك؟ لغة php اقتباس
0 Mustafa Suleiman نشر منذ 8 ساعة أرسل تقرير نشر منذ 8 ساعة الأمر سيتم كالتالي من خلال إنشاء نموذج HTML ومعالجة البيانات الخاصة به: <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $answers = $_POST; $correctAnswers = array( 'q1' => 'a', 'q2' => 'b', ); $score = 0; foreach ($answers as $question => $answer) { if ($answer === $correctAnswers[$question]) { $score++; } } echo '<div id="result">النتيجة: ' . $score . ' من ' . count($correctAnswers) . '</div>'; } ?> <form id="quiz-form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <div id="questions"> <h2>السؤال 1</h2> <input type="radio" name="q1" value="a"> الإجابة A <input type="radio" name="q1" value="b"> الإجابة B <input type="radio" name="q1" value="c"> الإجابة C <input type="radio" name="q1" value="d"> الإجابة D <h2>السؤال 2</h2> <input type="radio" name="q2" value="a"> الإجابة A <input type="radio" name="q2" value="b"> الإجابة B <input type="radio" name="q2" value="c"> الإجابة C <input type="radio" name="q2" value="d"> الإجابة D </div> <button id="submit-btn" type="submit">إرسال</button> </form> لاحظ أننا نقارن البيانات المرسلة بالإجابة الصحيحة من خلال مصفوفة correctAnswers وإضافة النتيجة لمتغير باسم score لكل إجابة صحيحة. 1 اقتباس
0 محمد عاطف17 نشر منذ 8 ساعة أرسل تقرير نشر منذ 8 ساعة وعليكم السلام ورحمة الله وبركاته. هذا يعتمد على طريقة بنائك للنموذج يرجى إرفاقه لمساعدتك بطريقة أفضل. أما بخصوص كود php فعندما تستقبل النموذج سيكون لديك إسم السؤال و الإجابة الذي تم إجابتها . حينها ستقوم بإرسال إستعلام بكل سؤال و التأكد من الإجابة الصحيحة والإجابة التي قام بها المستخدم ويمكنك حينها حساب مجموع الدرجات . ولنفرض مثلا أن النموذج كالتالي : <form method="POST"> <h3>السؤال 1</h3> <input type="radio" name="1" value="1"> 1<br> <input type="radio" name="1" value="2"> 2<br> <h3>السؤال 2</h3> <input type="radio" name="2" value="1"> 1<br> <input type="radio" name="2" value="2"> 2<br> <h3>السؤال 3</h3> <input type="radio" name="3" value="3"> 3<br> <input type="radio" name="3" value="4"> 4<br> <input type="submit" value="إرسال"> </form> وفي كود php يكون كالتالي : <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // الإجابات الصحيحة لكل سؤال $correct_answers = [ '1' => '1', // الإجابة الصحيحة للسؤال 1 '2' => 'أزرق', // الإجابة الصحيحة للسؤال 2 '3' => '3', // الإجابة الصحيحة للسؤال 3 ]; $score = 0; // لحساب الدرجة النهائية // التحقق من الإجابات foreach ($correct_answers as $question => $correct_answer) { if (isset($_POST[$question]) && $_POST[$question] == $correct_answer) { $score++; // إذا كانت الإجابة صحيحة، نضيف درجة } } echo $score; } 1 اقتباس
0 ابورنـــــــد نشر منذ 7 ساعة الكاتب أرسل تقرير نشر منذ 7 ساعة بتاريخ 24 دقائق مضت قال Mustafa Suleiman: الأمر سيتم كالتالي من خلال إنشاء نموذج HTML ومعالجة البيانات الخاصة به: <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $answers = $_POST; $correctAnswers = array( 'q1' => 'a', 'q2' => 'b', ); $score = 0; foreach ($answers as $question => $answer) { if ($answer === $correctAnswers[$question]) { $score++; } } echo '<div id="result">النتيجة: ' . $score . ' من ' . count($correctAnswers) . '</div>'; } ?> <form id="quiz-form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <div id="questions"> <h2>السؤال 1</h2> <input type="radio" name="q1" value="a"> الإجابة A <input type="radio" name="q1" value="b"> الإجابة B <input type="radio" name="q1" value="c"> الإجابة C <input type="radio" name="q1" value="d"> الإجابة D <h2>السؤال 2</h2> <input type="radio" name="q2" value="a"> الإجابة A <input type="radio" name="q2" value="b"> الإجابة B <input type="radio" name="q2" value="c"> الإجابة C <input type="radio" name="q2" value="d"> الإجابة D </div> <button id="submit-btn" type="submit">إرسال</button> </form> لاحظ أننا نقارن البيانات المرسلة بالإجابة الصحيحة من خلال مصفوفة correctAnswers وإضافة النتيجة لمتغير باسم score لكل إجابة صحيحة. تسلم بيض الله وجهك سيتم تجربة الكود اقتباس
0 ابورنـــــــد نشر منذ 7 ساعة الكاتب أرسل تقرير نشر منذ 7 ساعة بتاريخ 53 دقائق مضت قال محمد عاطف17: وعليكم السلام ورحمة الله وبركاته. هذا يعتمد على طريقة بنائك للنموذج يرجى إرفاقه لمساعدتك بطريقة أفضل. أما بخصوص كود php فعندما تستقبل النموذج سيكون لديك إسم السؤال و الإجابة الذي تم إجابتها . حينها ستقوم بإرسال إستعلام بكل سؤال و التأكد من الإجابة الصحيحة والإجابة التي قام بها المستخدم ويمكنك حينها حساب مجموع الدرجات . ولنفرض مثلا أن النموذج كالتالي : <form method="POST"> <h3>السؤال 1</h3> <input type="radio" name="1" value="1"> 1<br> <input type="radio" name="1" value="2"> 2<br> <h3>السؤال 2</h3> <input type="radio" name="2" value="1"> 1<br> <input type="radio" name="2" value="2"> 2<br> <h3>السؤال 3</h3> <input type="radio" name="3" value="3"> 3<br> <input type="radio" name="3" value="4"> 4<br> <input type="submit" value="إرسال"> </form> وفي كود php يكون كالتالي : <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // الإجابات الصحيحة لكل سؤال $correct_answers = [ '1' => '1', // الإجابة الصحيحة للسؤال 1 '2' => 'أزرق', // الإجابة الصحيحة للسؤال 2 '3' => '3', // الإجابة الصحيحة للسؤال 3 ]; $score = 0; // لحساب الدرجة النهائية // التحقق من الإجابات foreach ($correct_answers as $question => $correct_answer) { if (isset($_POST[$question]) && $_POST[$question] == $correct_answer) { $score++; // إذا كانت الإجابة صحيحة، نضيف درجة } } echo $score; } بيض الله وجهك سيتم تجربة الكود وسأرفق لكم الكود الخاص بي اقتباس
0 ابورنـــــــد نشر منذ 3 ساعة الكاتب أرسل تقرير نشر منذ 3 ساعة (معدل) بتاريخ 4 ساعة قال محمد عاطف17: وعليكم السلام ورحمة الله وبركاته. هذا يعتمد على طريقة بنائك للنموذج يرجى إرفاقه لمساعدتك بطريقة أفضل. أما بخصوص كود php فعندما تستقبل النموذج سيكون لديك إسم السؤال و الإجابة الذي تم إجابتها . حينها ستقوم بإرسال إستعلام بكل سؤال و التأكد من الإجابة الصحيحة والإجابة التي قام بها المستخدم ويمكنك حينها حساب مجموع الدرجات . ولنفرض مثلا أن النموذج كالتالي : <form method="POST"> <h3>السؤال 1</h3> <input type="radio" name="1" value="1"> 1<br> <input type="radio" name="1" value="2"> 2<br> <h3>السؤال 2</h3> <input type="radio" name="2" value="1"> 1<br> <input type="radio" name="2" value="2"> 2<br> <h3>السؤال 3</h3> <input type="radio" name="3" value="3"> 3<br> <input type="radio" name="3" value="4"> 4<br> <input type="submit" value="إرسال"> </form> وفي كود php يكون كالتالي : <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // الإجابات الصحيحة لكل سؤال $correct_answers = [ '1' => '1', // الإجابة الصحيحة للسؤال 1 '2' => 'أزرق', // الإجابة الصحيحة للسؤال 2 '3' => '3', // الإجابة الصحيحة للسؤال 3 ]; $score = 0; // لحساب الدرجة النهائية // التحقق من الإجابات foreach ($correct_answers as $question => $correct_answer) { if (isset($_POST[$question]) && $_POST[$question] == $correct_answer) { $score++; // إذا كانت الإجابة صحيحة، نضيف درجة } } echo $score; } <?php ob_start(); session_start(); ?> <div align="center" class="aa"> <div align="center"> <? /* هذا الكود حاولت عن طريقة استخراج النتيجة */ if($_GET["do"] == "Save") { for($i=1;$i<=$_POST["hdnLine"];$i++) { $a = array($_POST["answer$i"]); if($_POST["answer$i"] == $_POST["A$i"]){ $_POST["A$i"] = 1; }else{ $_POST["A$i"] = 0; } $my_count = array_sum($_POST["A$i"]); echo $my_count; }} ?> <!-- فورم لارسال الاجابات عدد الاجابات غير محدد قد يكون 10 او 20 او 30 حسب رغبة المستخدم--> <form method="POST" action="a.php?do=Save"> <h3>موسوعة التحصيلي للأحياء</h3><br /><br /><br /><br /> <h4>قريباً الاختبارات المحاكية</h4><br /><br /><br /><br /> <br /><br /> <? /* استعلام لاستخراج الاسئلة مع دالة while */ /* في كل مرة تختلف نتيجة الاستعلام وليس لها عدد محدد */ $sql = mysqli_query($coo,"SELECT * FROM `question` WHERE `id_lesson` = '1' AND `id_teaching` = '1' ORDER BY rand() LIMIT 3"); <-- رقم 3 سيتم استبدالة ببوست وعن طريقة المستخدم يحدد كم سؤال يحتاج $sql_num = mysqli_num_rows($sql); if($sql_num > 0){ $i =0; while($sql_raw = mysqli_fetch_array($sql)) { $i++; ?> <!-- جدول لطباعة الاسئلة --> <table cellpadding="0" width="100%" cellspacing="1" style="border: 1px solid;border-collapse: collapse;min-width: 20em;"> <tr> <td style="border: 1px solid;background-color: #f1f1f1;" width="28%" colspan="1">السؤال <?=$i;?></td> <td style="background-color: #fff;" width="auto"></td> </tr> </table> <table width="100%" cellspacing="1" style="border: 1px solid;border-collapse: collapse;min-width: 20em;"> <tr> </tr> <? /* كود ضبط حجم الصورة مع المتصفح */ if (!empty($sql_raw['img'])){ if($sql_raw['H'] >= 900){ $WW = '50%'; }else{ $WW = '80%'; } ?> <tr> <td style="text-align: center;background-color: #fff;" colspan="2"><img colspan="2" border="0" src="<?=$sql_raw['img'];?>" width="<?=$WW;?>" height="auto"></td> </tr> <? }else{} ?> <tr> <td style="background-color: #fff;" colspan="2"> </td> </tr> <tr> <td style="text-align: right;background-color: #fff;" colspan="2"><img border="0" src="./images/55.png" width="32" height="32"> <?=$sql_raw['question'];?> :</td> </tr> <tr> <td style="background-color: #fff;" colspan="2"> </td> </tr> <tr align="right"> <!-- حقول الاختيارات --> <td style="background-color: #fff;" width="90"><input type="radio" value="A" name="A<?=$i;?>"></td> <td style="text-align: right;background-color: #fff;" colspan="2"><?=$sql_raw['A'];?></td> </tr> <tr align="right"> <td style="background-color: #fff;" width="90"><input type="radio" value="B" name="A<?=$i;?>"></td> <td style="text-align: right;background-color: #fff;" colspan="2"><?=$sql_raw['B'];?></td> </tr> <tr align="right"> <td style="background-color: #fff;" width="90"><input type="radio" value="C" name="A<?=$i;?>"></td> <td style="text-align: right;background-color: #fff;" colspan="2"><?=$sql_raw['C'];?></td> </tr> <tr align="right"> <td style="background-color: #fff;" width="90"><input type="radio" value="D" name="A<?=$i;?>"></td> <td style="text-align: right;background-color: #fff;" colspan="2"><?=$sql_raw['D'];?></td> </tr> <tr> <? /* كود استبدال حرف العربي بحرف انجليزي للاجابة */ if($sql_raw['answer'] == 'أ'){ $ans = 'A'; }elseif($sql_raw['answer'] == 'ب'){ $ans = 'B'; }elseif($sql_raw['answer'] == 'ج'){ $ans = 'C'; }elseif($sql_raw['answer'] == 'د'){ $ans = 'D'; }else{ $ans = 'error'; } ?> <!-- حقل الاجابة الصحيحة حقل مخفي --> <td style="background-color: #fff;" colspan="2"><input type="hidden" name="answer<?=$i;?>" value="<?=$ans;?>" /></td> </tr> </table><br /> <!-- end --> <? }} ?> <div align="center"> <input type="submit" name="submit" value="تعديل البيانات"> <input type="hidden" name="hdnLine" value="<?=$i;?>"> </div> <br /> </form> </div> </div> </div> <br /> <? mysqli_close($coo); ob_end_flush(); ?> </body> </html> هذا كود الصفحة اللي استخدمته بتاريخ 4 ساعة قال Mustafa Suleiman: الأمر سيتم كالتالي من خلال إنشاء نموذج HTML ومعالجة البيانات الخاصة به: <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $answers = $_POST; $correctAnswers = array( 'q1' => 'a', 'q2' => 'b', ); $score = 0; foreach ($answers as $question => $answer) { if ($answer === $correctAnswers[$question]) { $score++; } } echo '<div id="result">النتيجة: ' . $score . ' من ' . count($correctAnswers) . '</div>'; } ?> <form id="quiz-form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <div id="questions"> <h2>السؤال 1</h2> <input type="radio" name="q1" value="a"> الإجابة A <input type="radio" name="q1" value="b"> الإجابة B <input type="radio" name="q1" value="c"> الإجابة C <input type="radio" name="q1" value="d"> الإجابة D <h2>السؤال 2</h2> <input type="radio" name="q2" value="a"> الإجابة A <input type="radio" name="q2" value="b"> الإجابة B <input type="radio" name="q2" value="c"> الإجابة C <input type="radio" name="q2" value="d"> الإجابة D </div> <button id="submit-btn" type="submit">إرسال</button> </form> لاحظ أننا نقارن البيانات المرسلة بالإجابة الصحيحة من خلال مصفوفة correctAnswers وإضافة النتيجة لمتغير باسم score لكل إجابة صحيحة. المشكله في هذا السطر : 'q1' => 'a', 'q2' => 'b', انت حطيت سطرين ... المشكلة اللي عندي عدد POST غير معروف قد يكون اكثر من 2 لان النموذج قد يعرض لمستخدم 10 اسئلة لذلك بيكون هناك 10 POST ومستخدم اخر قد يعرض له 20 سؤال لذلك بيكون لدي 20 POST تم التعديل في منذ 3 ساعة بواسطة علي الاسمري2 1 اقتباس
0 محمد عاطف17 نشر منذ 2 ساعة أرسل تقرير نشر منذ 2 ساعة بتاريخ 52 دقائق مضت قال ابوموسى الاسمري: /* هذا الكود حاولت عن طريقة استخراج النتيجة */ if($_GET["do"] == "Save") { for($i=1;$i<=$_POST["hdnLine"];$i++) { $a = array($_POST["answer$i"]); if($_POST["answer$i"] == $_POST["A$i"]){ $_POST["A$i"] = 1; }else{ $_POST["A$i"] = 0; } $my_count = array_sum($_POST["A$i"]); echo $my_count; }} الخطأ لديك هنا في كيفية حساب النقاط . حيث أولا لا يتم إحتساب النقاط بطريقة صحيحة وأيضا تقوم بطباعة النتيجة بداخل حلقة for أى سيتم طباعة أرقام بعدد الأسئلة التي لديك. يمكنك تجربة الكود التالي بعد إستبداله بالكود السابق الذي أشرت إليك فيه و إخباري بالنتيجة: /* هذا الكود حاولت عن طريقة استخراج النتيجة */ if ($_GET["do"] == "Save") { $my_count = 0; for ($i = 1; $i <= $_POST["hdnLine"]; $i++) { $a = array($_POST["answer$i"]); if ($_POST["answer$i"] == $_POST["A$i"]) { $my_count += 1; } } echo $my_count; } 1 اقتباس
0 ابورنـــــــد نشر منذ 2 ساعة الكاتب أرسل تقرير نشر منذ 2 ساعة بتاريخ 8 دقائق مضت قال محمد عاطف17: الخطأ لديك هنا في كيفية حساب النقاط . حيث أولا لا يتم إحتساب النقاط بطريقة صحيحة وأيضا تقوم بطباعة النتيجة بداخل حلقة for أى سيتم طباعة أرقام بعدد الأسئلة التي لديك. يمكنك تجربة الكود التالي بعد إستبداله بالكود السابق الذي أشرت إليك فيه و إخباري بالنتيجة: /* هذا الكود حاولت عن طريقة استخراج النتيجة */ if ($_GET["do"] == "Save") { $my_count = 0; for ($i = 1; $i <= $_POST["hdnLine"]; $i++) { $a = array($_POST["answer$i"]); if ($_POST["answer$i"] == $_POST["A$i"]) { $my_count += 1; } } echo $my_count; } الله يسعدك ... ابشرك ضبط ما شاء الله تسلم الله يزيدك من علمه 1 اقتباس
0 ابورنـــــــد نشر منذ 1 ساعة الكاتب أرسل تقرير نشر منذ 1 ساعة (معدل) بتاريخ 1 ساعة قال محمد عاطف17: الخطأ لديك هنا في كيفية حساب النقاط . حيث أولا لا يتم إحتساب النقاط بطريقة صحيحة وأيضا تقوم بطباعة النتيجة بداخل حلقة for أى سيتم طباعة أرقام بعدد الأسئلة التي لديك. يمكنك تجربة الكود التالي بعد إستبداله بالكود السابق الذي أشرت إليك فيه و إخباري بالنتيجة: /* هذا الكود حاولت عن طريقة استخراج النتيجة */ if ($_GET["do"] == "Save") { $my_count = 0; for ($i = 1; $i <= $_POST["hdnLine"]; $i++) { $a = array($_POST["answer$i"]); if ($_POST["answer$i"] == $_POST["A$i"]) { $my_count += 1; } } echo $my_count; } اخي محمد بارك الله فيك لدي استفسار اخر هل بالامكان وضع علامة صح بالاخضر على الاجابة الصحيحة التي اختارها الزائر وعلامة X على الاجابة الحاطئة . حتى يعرف الخطأ الذي وقع فيه . لاني لاحظت مجرد ارسال النموذج تظهر النتيجة وتختفي الاسئلة ويأتي بأسئلة عشوائية جديدة هنا المستخدم ما راح يستفيد ويكون فيه تغذية راجعة بالاجابات الصحيحة تم التعديل في منذ 48 دقيقة بواسطة ابورنـــــــد اقتباس
السؤال
ابورنـــــــد
السلام عليكم ورحمة الله وبركاته
لدي نموذج اختبار
يوجد استعلام على حسب رغبة الزائر
قد يعرض عليه سؤال او اثنين او اكثر
بعد عرض الاستعلام … الزائر سيختار الاجابة الصحيحة
بعد الانتهاء سيرسل النموذج وسيتم طباعة النتيجة مباشرة على نفس الصفحة بدون تخزين البيانات في القاعدة بناءً على اجاباته كل اجابة صحيحة بدرجة والخاطئة بصفر النتيجة ستكون مجموع درجاته
المشكلة التي واجهتها كيف اجمع POST حتى يعطي درجة نهائية لهذا الاختبار
شكرا لكم
10 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.