• 02-02-2021, 00:03:21
    #1
    arkadaşlar merhaba.
    siteme bir soru çözme sayfası yapıyorum.
    sorular veri tabanından ekleniyor.
    Tablo: sorular
    sütunlar : id - sorubaslik - cevap1 - cevap2 - cevap3 - cevap4-cevap5- dcevap)
    cevap1 sütunları şıklardır
    d cevap ise sorunun doğru cevabıdır.

    ama index.js dosyasında soru cevapları elle giriliyor
    bunu nasıl kategoriye göre ayarlayabilirim,

    yani aşağıdaki index.js kodlarında yer alan doğru cevap koduna nasıl işleyebilirim.



    <?php
    $sorgu=$db->prepare("SELECT * FROM sorular WHERE kategori='deneme' ");
    $sorgu-> execute();
    $sorular=$sorgu-> fetchAll(PDO::FETCH_OBJ); 
    
     ?>
    
    Soru sayfası 
      <?php foreach($sorular as $soru) { ?>
    <fieldset class="radiogroup">
    <legend><?=$soru->sorubaslik?></legend>
     <ul class="radio" style="list-style:none">
      <li>A) <input type="radio" name="q1" value="A" /><label><?=$soru->cevap1?></label></li>
      <li>B) <input type="radio" name="q1" value="B" /><label><?=$soru->cevap2?></label></li>
      <li>C) <input type="radio" name="q1" value="C" /><label><?=$soru->cevap3?></label></li>
      <li>D) <input type="radio" name="q1" value="D" /><label><?=$soru->cevap4?></label></li>
      <li>E) <input type="radio" name="q1" value="E" /><label><?=$soru->cevap5?></label></li>
     </ul>
    </fieldset>
    <?php }   ?>
    <input type="button" value="Cevapla" onclick="checkAnswer()" />
    </form>
    <div id="rapor"></div>
    <script src="js/index.js"></script>

    index.js


    function checkAnswer() {
      var soruSayisi = 3;
      var gelenCevap = new Array();
      var dogruCevap = new Array("B", "C", "A");
      var dogru = 0;
      var yanlis = 0;
      var cevap = 0;
      var rapor = "";
    
      for (i = 1; i <= soruSayisi; i++) {
        var secenekler = document.getElementsByName("q" + i);
        for (j = 0; j < secenekler.length; j++) {
          if (secenekler[j].checked) {
            if (secenekler[j].value == dogruCevap[i - 1]) {
              cevap = 1;
            } else {
              cevap = 0;
            }
            if (cevap) {
              rapor += i + ". Soru için cevabınız: " + secenekler[j].value + ", Doğru <br />";
            } else {
              rapor += i + ". Soru için cevabınız: " + secenekler[j].value + ", YANLIŞ, Doğru Cevap: " + dogruCevap[i - 1] + "<br />";
            }
            gelenCevap.push(secenekler[j].value);
          }
        }
      }
    
      for (k = 0; k < soruSayisi; k++) {
        if (gelenCevap[k] == dogruCevap[k]) {
          dogru++;
        } else {
          yanlis++;
        }
      }
      rapor += "Sonuç: " + dogru + " Doğru, " + yanlis + " Yanlış" + "<br />";
      document.getElementById('rapor').innerHTML = rapor;
    }
  • 02-02-2021, 00:04:48
    #2
    @hasyer; uzman.
  • 02-02-2021, 01:18:02
    #3
    Yeni bir php dosyası oluşturun.
    AJAX ile o dosyaya verilen cevabı postlayın.
    Ardından php dosyası içerisinde gelen cevabın doğru veya yanlış olduğuna dair bir kontrol yaptırın.
    Ekrana doğruysa "dogru" , yanlışsa "yanlis" yazdırın.
    AJAX dan dönen sonuca göre işleminizi yapabilirsiniz.

    En sondaki toplam sayı olayını da dogru ve yanlis adında birer cookie olusturup bunun içine veriyi ekleyip bundan çektirebilirsiniz.

    Ama benim size önerim tüm bunları session ile yapıp testin doğru ve yanlış cevaplarını php ile hesaplatmanızdır.
  • 02-02-2021, 01:58:47
    #4
    metehandemir adlı üyeden alıntı: mesajı görüntüle
    Yeni bir php dosyası oluşturun.
    AJAX ile o dosyaya verilen cevabı postlayın.
    Ardından php dosyası içerisinde gelen cevabın doğru veya yanlış olduğuna dair bir kontrol yaptırın.
    Ekrana doğruysa "dogru" , yanlışsa "yanlis" yazdırın.
    AJAX dan dönen sonuca göre işleminizi yapabilirsiniz.

    En sondaki toplam sayı olayını da dogru ve yanlis adında birer cookie olusturup bunun içine veriyi ekleyip bundan çektirebilirsiniz.

    Ama benim size önerim tüm bunları session ile yapıp testin doğru ve yanlış cevaplarını php ile hesaplatmanızdır.
    yarımdılarınız için teşekkür ederim sayenizde yaptım