Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

user belum jawab pilihan ganda

permisi gan, saya lg bikin ujian online. cuma saya ada masalah, saya jelasin di komen kodenya aja ya saya punya kode sebagai berikut

Terima kasih


//Tabel Soals
id | pertanyaan | A | B | C | D |Kunci

//Tabel Jawabans
id | Soal_id | jawaban_user | user_id

view soal


 @if(!count($soals))
 <div class="my-1 p-3 bg-white rounded box-shadow text-center">
     <i class="fa fa-file"></i>
     <p class="text-muted mb-0">Belum ada Soal</p>
     </div>
 @else
 <div id="load" style="position: relative;">

@foreach($soals as $soal)
<div class="my-1 p-3 bg-white rounded box-shadow">
<div class="card mb-2" ><div class="card-header">
    Nomor {{ ($soals ->currentpage()-1) * $soals ->perpage() + $loop->index + 1 }} / {{$soals->lastPage()}}
    <button class="btn btn-primary float-right">Selesai</button>
  </div>
  <div class="card-body">
{!!$soal->pertanyaan!!}

  </div></div>

//di bawah ini bagian opsi jawban pilihan ganda
//ini kan saya ngeloop jawaban user yg jika soal sudah terjawab, dengan if statement
//masalahnya, kalo di bagian soal yg belum dijawab, opsi jawaban hilang
//gimana caranya untuk deteksi soal yg belum terjawab, opsi jawaban tetap muncul
//terima kasih

@foreach($userjawabs as $userjawab)
@if($soal->id == $userjawab->soal_id && Auth::user()->id == $userjawab->user_id)

<div class="card mb-2"><div class="card-body"><div class="custom-control custom-radio">
  <input onclick="jawab('{{$soal->id}}',this)" type="radio" id="A" value="A"  name="pilihan" class="custom-control-input pilihan" {{$userjawab->pilihan == 'A' && $userjawab->soal->id == $soal->id ? 'checked':''}}>
  <label class="custom-control-label" for="A">{{$soal->A}}</label>
</div></div></div>

<div class="card mb-2"><div class="card-body"><div class="custom-control custom-radio">
  <input onclick="jawab('{{$soal->id}}',this)"  type="radio" id="B" value="B" name="pilihan" class="custom-control-input pilihan" {{$userjawab->pilihan == 'B' && $userjawab->soal->id == $soal->id ? 'checked':''}}>
  <label class="custom-control-label" for="B">{{$soal->B}}</label>
</div></div></div>

<div class="card mb-2"><div class="card-body"><div class="custom-control custom-radio">
  <input onclick="jawab('{{$soal->id}}',this)" type="radio" id="C" value="C" name="pilihan" class="custom-control-input pilihan"{{$userjawab->pilihan == 'C' && $userjawab->soal->id == $soal->id ? 'checked':''}}>
  <label class="custom-control-label" for="C">{{$soal->C}}</label>
</div></div></div>

<div class="card mb-2"><div class="card-body"><div class="custom-control custom-radio">
  <input onclick="jawab('{{$soal->id}}',this)" type="radio" id="D" value="D" name="pilihan" class="custom-control-input pilihan" {{$userjawab->pilihan == 'D' && $userjawab->soal->id == $soal->id ? 'checked':''}}>
  <label class="custom-control-label" for="D">{{$soal->D}}</label>
</div></div></div>

@endif
@endforeach

</div>
@endforeach
</div>
{{ $soals->links() }}
@endif

SoalController.php



 public function tosmp($mapel, Request $request){
    $pelajaran = Pelajaran::where('level_id', 1)->whereMapel($mapel)->first();
    $soals = Soal::with('jawaban')->where('level_id', 1)->where('pelajaran_id' , $pelajaran->id)->orderBy('created_at' , 'desc')->paginate(1);

    $userjawabs = Jawaban::with(['soal:id,kunci,pelajaran_id', 'user'])->where('mapel_id', $pelajaran->id)->get();

     if ($request->ajax()) {
         $jawaban = Jawaban::with('user')->where('user_id', Auth::user()->id)->first();
            return view('tryout.peserta.soal-smp-show', ['soals' => $soals, 'userjawabs'=> $userjawabs])->render();
        }
    return view('tryout.peserta.soal-smp', compact('pelajaran' , 'soals', 'userjawabs'));
   }

Model


//Model Soal
    public function jawaban()
    {
        return $this->belongsTo('App\Jawaban');
    }

// Model Jawaban

    public function soal()
    {
        return $this->belongsTo('App\Soal');
    }

avatar irestuf
@irestuf

51 Kontribusi 3 Poin

Dipost 6 tahun yang lalu

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban