اذهب إلى المحتوى
  • 0

"كيف يمكنني طباعة الإجابة الصحيحة في حالة الإجابة الخاطئة باستخدام Laravel و JSON؟"

Saaed Alamer

السؤال

مساء الخير 

لدي هذا function يقوم بعمل الاتي 

 public function checkAns(Request $request, $domain)
    {
        $user = getUser();
        $id = $request['quizId'];
        $answers = $request['answers'];

        $quiz = LessonQuiz::query()
            ->where('user_id', $user->id)
            ->find($id);
        $qas = json_decode($quiz->answers);

        // find out how many right answer has been selected by admin
        $rightAnsCount = 0;

        foreach ($qas as $qa) {
            if ($qa->rightAnswer == 1) {
                $rightAnsCount++;
            }
        }

        // find out how many correct answer has been given by user
        $correctAnsCount = 0;

        foreach ($answers as $ans) {
            foreach ($qas as $qa) {
                if ($ans == $qa->option && $qa->rightAnswer == 1) {
                    $correctAnsCount++;
                }
            }
        }

        if (($rightAnsCount == $correctAnsCount) && (count($answers) == $rightAnsCount)) {
            return response()->json(['status' => 'Correct']);
        } else {
            return response()->json(['status' => 'Incorrect']);
        }
    }

بعد ان يقوم الطالب باختيار الاجابة الخاصة بالسؤال اذا كانت صحيحة يطبع له Correct

اذا كانت خطا يطبع له Incorrect 

نحتاج الى الاتي فى حالة كانت الاجابة خطا Incorrect  يطبع له الاجابة الصحيحة استعملت هذا الكود 

 

if (($rightAnsCount == $correctAnsCount) && (count($answers) == $rightAnsCount)) {
    return response()->json(['status' => 'Correct']);
} else {
    $correctAnswers = [];
    foreach ($qas as $qa) {
        if ($qa->rightAnswer == 1) {
            $correctAnswers[] = $qa->option;
        }
    }
    return response()->json(['status' => 'Incorrect', 'correctAnswer' => implode(', ', $correctAnswers)]);
}

 

ولكن لا تعمل يتم طباعة Incorrect  هل من طريقة اخري 

استخدمت هذه الطريقة ونجحت شكرا لكم 
if (($rightAnsCount == $correctAnsCount) && (count($answers) == $rightAnsCount)) { return response()->json(['status' => __('Correct Answer!')]); } else { $correctAnswers = []; foreach ($qas as $qa) { if ($qa->rightAnswer == 1) { $correctAnswers[] = $qa->option; } } return response()->json(['status' => __('Incorrect. Correct Answer(s): ') . implode(', ', $correctAnswers)]); }

هذه الطريقة الصحيحة 

 

if (($rightAnsCount == $correctAnsCount) && (count($answers) == $rightAnsCount)) {
    return response()->json(['status' => __('Correct Answer!')]);
} else {
    $correctAnswers = [];
    foreach ($qas as $qa) {
        if ($qa->rightAnswer == 1) {
            $correctAnswers[] = $qa->option;
        }
    }
    return response()->json(['status' => __('Incorrect. Correct Answer(s): ') . implode(', ', $correctAnswers)]);
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

لا توجد أي إجابات على هذا السؤال بعد

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...