Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Foreach kullanarak post almak

Konu, 'PHP' kısmında webandyazilimprofesor tarafından paylaşıldı.

  1. webandyazilimprofesor

    webandyazilimprofesor Üye

    Kayıt:
    2 Eylül 2017
    Mesajlar:
    138
    Beğenilen Mesajlar:
    3
    Şehir:
    Ankara
    Merhaba,

    arkadaşlar test sayfası için, foreach kullanarak post almaya çalıştım ama olmadı.

    Kod kısmı şöyle :

    Kod:
    <?php
    
    include "baglanti.php";
    
    $testad = filter_input(INPUT_GET, "test");
    
    $testcek = $baglanti -> prepare("select * from test where baslik = ?");
    $testcek -> bindParam(1, $testad);
    $testcek -> execute();
    
    $i = 0;
    
    ?>
    
    <div id="testler">
    
    <?php
    
    foreach ($testcek as $testbilgi) {
    
        $i++;
    
        $taciklama = $testbilgi["testaciklama"];
        $c1 = $testbilgi["cevap1"];
        $c2 = $testbilgi["cevap2"];
        $c3 = $testbilgi["cevap3"];
        $c4 = $testbilgi["cevap4"];
        $dogrucevap = $testbilgi["cevap"];
    
        $formad = "form".$i;
    
        $radioname = "radio".$i;
       
        $cradioa = "ra".$i;
        $cradiob = "rb".$i;
        $cradioc = "rc".$i;
        $cradiod = "rd".$i;
    
        $aciklamatop = -20 * $i;
    
        $atop = 150 * $i;
    
        $btop = 200 * $i;
    
        $ctop = 250 * $i;
    
        $dtop = 300 * $i;
    
        ?>
    
        <br>
        <label style="position: absolute;top: <?php echo($aciklamatop); ?> px;left: px;"><?php echo($taciklama); ?></label><br><br>
    
        <label style="position: absolute;top: <?php echo($atop); ?> px;left: px;">a) <?php echo($c1); ?></label><br>
    
        <label style="position: absolute;top: <?php echo($btop); ?> px;left: px;">b) <?php echo($c2); ?></label><br>
    
        <label style="position: absolute;top: <?php echo($ctop); ?> px;left: px;">c) <?php echo($c3); ?></label><br>
    
        <label style="position: absolute;top: <?php echo($dtop); ?> px;left: px;">d) <?php echo($c4); ?></label><br><br>
    
        <form action="" method="post" name="<?php echo($formad); ?>">
            <input type="radio" class="<?php echo($cradioa); ?>" name="<?php echo($radioname); ?>" value="a">a
            <input type="radio" class="<?php echo($cradiob); ?>" name="<?php echo($radioname); ?>" value="b">b
            <input type="radio" class="<?php echo($cradioc); ?>" name="<?php echo($radioname); ?>" value="c">c
            <input type="radio" class="<?php echo($cradiod); ?>" name="<?php echo($radioname); ?>" value="d">d
            <input type="submit" id="gonderb" class="gonderb<?php echo($i); ?>" name="g" value="Gönder">
        </form>
    
        <?php
    
    }
    
        if (isset($_POST["g"])) {
    
            ?>
    
            <script type="text/javascript">
           
            alert("veri alındı");
    
            </script>
    
            <?php
    
            $seciliradio = filter_input(INPUT_POST, $radioname);
    
            if ($seciliradio == $dogrucevap) {
    
                echo "Doğru cevap yazılımcı parası eklenmiştir";
    
                ?>
    
                <script type="text/javascript">
                   
                    document.getElementById("gonderb").remove();
    
                    alert("a");
    
                </script>
    
                <?php
    
            }else{
    
                echo "Yanlış cevap";
    
            }
    
        }
    
    ?>
    
    </div>
    Hiç bir alert almıyorum hiç mesaj yok.

    Bu sorunu nasıl çözebilirim?

    Yardımınıza ihtiyacım var.
     
  2. zoom699

    zoom699 Daimi Üye

    Kayıt:
    13 Temmuz 2011
    Mesajlar:
    580
    Beğenilen Mesajlar:
    1
    input değerleri label içine al. radionun dışnda harflere tıklandığında radio seçimi gerçekleşir. form taguna id eklersenz #form label input yapın

    <script type="text/javascript">

    $("#form input").on("click",function(){
    val= $(this).find("input:checked").val();
    alert(val); //bu değeri kayıt yapacaksan değişkeni anlık postla gönder

    });
    </script>
     
  3. webandyazilimprofesor

    webandyazilimprofesor Üye

    Kayıt:
    2 Eylül 2017
    Mesajlar:
    138
    Beğenilen Mesajlar:
    3
    Şehir:
    Ankara
    Yani seçildiği an hemen gönereyim mi diyorsunuz?
     
  4. webandyazilimprofesor

    webandyazilimprofesor Üye

    Kayıt:
    2 Eylül 2017
    Mesajlar:
    138
    Beğenilen Mesajlar:
    3
    Şehir:
    Ankara
    Dediğin gibi yaptım input değerlerini label içine alınca artık php ile veriyi alıyor ama veri boş oluyor form'a "form" adlı id ekledim dediğiniz scripti aldım olmadı (hiç bir alert yok) ama foreach ten dolayı mı bilmiyorum.

    Yardımınıza ihtiyacım var.
     
  5. zoom699

    zoom699 Daimi Üye

    Kayıt:
    13 Temmuz 2011
    Mesajlar:
    580
    Beğenilen Mesajlar:
    1
    telefonda konuşma yasaklısımısın yazıyorsun 2 dk ara
     
  6. webandyazilimprofesor

    webandyazilimprofesor Üye

    Kayıt:
    2 Eylül 2017
    Mesajlar:
    138
    Beğenilen Mesajlar:
    3
    Şehir:
    Ankara
    Maalesef arayamıyorum. Peki sadece bir gönder butonu ile olur mu? Ama o zamanda hangi cevbın hangi soruya ait olacağı belli olmaz değil mi?

    Yardımınıza ihiyacım var.
     
  7. zoom699

    zoom699 Daimi Üye

    Kayıt:
    13 Temmuz 2011
    Mesajlar:
    580
    Beğenilen Mesajlar:
    1
    orda bir tık yaptığın elementin altındadaki değeri dönderiyorsun nasıl yani:

    örnek 1 soru sorulaım=> aşağıdakilerden hangisi iç anadolu bölgesinde çıkan madenlerden dir.
    a: bor, b: kömür, c: doğalgaz
    gibi bunları bir form içinde alıp İD="FORM" olsun tıklama işlemini bir hareket olarak doğru cevap A nın altındaki gizli id gönderiyorsun.

    o kadar. $postla veya $getle
    yeni başladıysan youtubede izle biraz.