mengambil nilai array html di kolom input dengan javaceript

Mohon pencerahan saya mau meng cek radio grup apakah sudah dicek atau belum dan hasilnya nomor berapa yang sudah dicek. script saya ini tapi gagal terus
<?php
	$hasil=mysqli_query($link1,"select * from t_soal WHERE aktif='Aktif' and kdkppn='$kdkppn' and id_even='$id_even' ORDER BY RAND() limit $jmlsoal ");
$jumlah=mysqli_num_rows($hasil);
$no=1;	
while($row =mysqli_fetch_array($hasil))
{ ?>
	<div class="tab">
	   <div class="soal">
		 <p style="font-size: 30px;font-weight: 300;color: darkcyan">Soal no.<?php echo $no ?><?php echo $pertanyaan ?></p>
		</div>
		<div class='pilih_a'>
		  A. <input type="radio" name="pilihan[<?php echo $id ?>]" id="no[<?php echo $no ?>]" value="A" onclick="radio_box(this)"  ><?php echo $pilihan_a ?>
		</div>	
		<div class ='pilih_b'>
		  B. <input type="radio" name="pilihan[<?php echo $id ?>]" id="no[<?php echo $no ?>]" value="B"  onclick="radio_box(this)"    ><?php echo $pilihan_b ?>
		</div>	
		<div class ='pilih_c'>
		  C. <input type="radio" name="pilihan[<?php echo $id ?>]" id="no[<?php echo $no ?>]" value="C"  onclick="radio_box(this)" > <?php echo $pilihan_c ?>	
		</div>	
	    <div class ='pilih_d'>
		  D. <input type="radio" name="pilihan[<?php echo $id ?>]" id="no[<?php echo $no ?>]" value="D"  onclick="radio_box(this)"  ><?php echo $pilihan_d ?>	
		</div>	
	</div>

<?php $no=$no+1; }?>	
<body>
<script>	
 function radio_box(box){
	 var i,no=document.getElementsByClassName("no");
	 if(box.checked){
		 var nosoal=no[1];
		 alert(nosoal);
	
	}
  }
}
</script>		
avatar denbaguse

@denbaguse

1 Kontribusi 0 Poin


Jawaban

berikut saya buatkan contoh untuk penerapan penampungan jawaban pada studi kasus di atas.
mungkin ini bukan best practice, tapi mungkin berhasil :

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <title>Join to Gang!</title>
  </head>
  <body>
  	<div class="container pt-4">
  		
  		<div class="row pt-4 mb-4">
  				
  			<div class="col-12">
  				
  				<p>Pertanyaan 1 ?</p>
          <input type="radio" name="pertanyaan1" value="A" onclick="submitAnswer(this)"> A<br>
          <input type="radio" name="pertanyaan1" value="B" onclick="submitAnswer(this)"> B<br>
          <input type="radio" name="pertanyaan1" value="C" onclick="submitAnswer(this)"> C<br>
          <input type="radio" name="pertanyaan1" value="D" onclick="submitAnswer(this)"> D<br>

          <p>Pertanyaan 2 ?</p>
          <input type="radio" name="pertanyaan2" value="A" onclick="submitAnswer(this)"> A<br>
          <input type="radio" name="pertanyaan2" value="B" onclick="submitAnswer(this)"> B<br>
          <input type="radio" name="pertanyaan2" value="C" onclick="submitAnswer(this)"> C<br>
          <input type="radio" name="pertanyaan2" value="D" onclick="submitAnswer(this)"> D<br>

          <p>Pertanyaan 3 ?</p>
          <input type="radio" name="pertanyaan3" value="A" onclick="submitAnswer(this)"> A<br>
          <input type="radio" name="pertanyaan3" value="B" onclick="submitAnswer(this)"> B<br>
          <input type="radio" name="pertanyaan3" value="C" onclick="submitAnswer(this)"> C<br>
          <input type="radio" name="pertanyaan3" value="D" onclick="submitAnswer(this)"> D<br>

  			</div>

  		</div>

  	</div>

    <script type="text/javascript">
    	let jawaban = [];

    	const submitAnswer = (target) => {
        const soal = target.getAttribute('name');

        let temp = {
          [soal] : target.value
        }

        let ada = false;

        jawaban.forEach(res => {
          if(res.hasOwnProperty(soal)) {
            res[soal] = target.value
            ada = true;
          }
        });

        if(!ada) {
          jawaban.push(temp);
        }

    	}

    </script>
  </body>
</html>
avatar insanz01

@insanz01

82 Kontribusi 54 Poin


Saya lakukan refactor pada program yang saya buat

let jawaban = [];

const submitAnswer = (target) => {
        const soal = target.getAttribute('name');
        const jawab = target.value

        let temp = {
          soal,
          jawab
        }

        let ada = false;

        jawaban.forEach(res => {
          if(res.soal == soal) {
            res.jawab = jawab;
            ada = true;
          }
        });

        if(!ada) {
          jawaban.push(temp);
        }

}
avatar insanz01

@insanz01

82 Kontribusi 54 Poin


Login untuk gabung berdiskusi
premium logo tube

Hey, sedang ada diskon premium untuk akses semua kelas. Lihat di sini