• 10-02-2022, 17:20:13
    #1
    Selamlar arkadaşlar,
    Bir array çıktısı alıyorum şu şekilde

    $seriler;
    yazdığımda karşıma çıkan sonuç şu diyelim:
    Array
    (
        [0] => 21042510
        [1] => 21042511
        [2] => 21042512
    )
    Ben bu verilerin tamamını, buton ile farklı sayfada ki forma post etmek istiyorum.
    Örnek olarak value kısmını aşağıdaki gibi sabit değer girersem çalışıyor.
                <form method="POST" action="form.html">
                <input class="hidden" type="text" id="sorgu_formu" name="seri_no" autocomplete="off"  value="21042510">
                <button formtarget="_blank" type="submit" class="btn btn-primary">Gönder</button>
                </form>
    Ama ben tüm değerleri post edip karşıda while döngüsü ile alt alta sıralamak istiyorum.
    Alttaki kullanım sonuç vermiyor saçma oldu farkındayım ama kendimi açıklayabilmek için yazdım.
                <form method="POST" action="form.html">
                <input class="hidden" type="text" id="sorgu_formu" name="seri_no" autocomplete="off"  value="<?php echo $seriler;?>">
                <button formtarget="_blank" type="submit" class="btn btn-primary">Gönder</button>
                </form>
    Nasıl üstesinden gelebilirim yardımcı olur musunuz?
  • 10-02-2022, 17:21:18
    #2
    TuncerSK adlı üyeden alıntı: mesajı görüntüle
    Selamlar arkadaşlar,
    Bir array çıktısı alıyorum şu şekilde

    $seriler;
    yazdığımda karşıma çıkan sonuç şu diyelim:
    Array
    (
        [0] => 21042510
        [1] => 21042511
        [2] => 21042512
    )
    Ben bu verilerin tamamını, buton ile farklı sayfada ki forma post etmek istiyorum.
    Örnek olarak value kısmını aşağıdaki gibi sabit değer girersem çalışıyor.
                <form method="POST" action="form.html">
                <input class="hidden" type="text" id="sorgu_formu" name="seri_no" autocomplete="off"  value="21042510">
                <button formtarget="_blank" type="submit" class="btn btn-primary">Gönder</button>
                </form>
    Ama ben tüm değerleri post edip karşıda while döngüsü ile alt alta sıralamak istiyorum.
    Alttaki kullanım sonuç vermiyor saçma oldu farkındayım ama kendimi açıklayabilmek için yazdım.
                <form method="POST" action="form.html">
                <input class="hidden" type="text" id="sorgu_formu" name="seri_no" autocomplete="off"  value="$seriler;">
                <button formtarget="_blank" type="submit" class="btn btn-primary">Gönder</button>
                </form>
    Nasıl üstesinden gelebilirim yardımcı olur musunuz?
    Verileri diğer sayfaya json ile gönderip çekebilirsiniz
  • 10-02-2022, 17:25:36
    #3
    gurbuzemre adlı üyeden alıntı: mesajı görüntüle
    Verileri diğer sayfaya json ile gönderip çekebilirsiniz
    <?php
    
    $seriler = [
    
        "0" => "21042510",
        "1" => "21042511",
        "2" => "21042512"
    ];
    
    
     ?>
    
    <form method="POST" action="form.html">
    <?php
    
    foreach($seriler as $as){
    
    ?>
    <input class="hidden" type="text" id="sorgu_formu" name="seri_no" autocomplete="off"  value="<?php echo $as; ?>">
    
    <?php } ?>
    <button formtarget="_blank" type="submit" class="btn btn-primary">Gönder</button>
    </form>
    Yada bu arkadaşın söylediğinie ek bu şekildede yapabilirsiniz hocam.
  • 10-02-2022, 20:23:04
    #4
    DarkBy adlı üyeden alıntı: mesajı görüntüle
    <?php
    
    $seriler = [
    
        "0" => "21042510",
        "1" => "21042511",
        "2" => "21042512"
    ];
    
    
     ?>
    
    <form method="POST" action="form.html">
    <?php
    
    foreach($seriler as $as){
    
    ?>
    <input class="hidden" type="text" id="sorgu_formu" name="seri_no" autocomplete="off"  value="<?php echo $as; ?>">
    
    <?php } ?>
    <button formtarget="_blank" type="submit" class="btn btn-primary">Gönder</button>
    </form>
    Yada bu arkadaşın söylediğinie ek bu şekildede yapabilirsiniz hocam.
    Arkadaşlar cevaplarınız için teşekkür ederim.
    @DarkBy; arkadaşımızın söylediği foreach metodu ile yaptım. kodu uygulayınca istediğim şekilde çıktı aldım, zannediyorum sorun yok.
    şu şekilde geldi. (ayrıca bir kaç form düzenlemesi yaptım id'ler değişik görünebilir ama hata yok.)

    <form method="POST" action="form.html">
                                <input type="text" id="etiket_yazdir_input" name="seri_no" autocomplete="off" placeholder="" value="21042510" style="display:none;">
                                <input type="text" id="etiket_yazdir_input" name="seri_no" autocomplete="off" placeholder="" value="21042511" style="display:none;">
                                <input type="text" id="etiket_yazdir_input" name="seri_no" autocomplete="off" placeholder="" value="21042512" style="display:none;">
                                <button formtarget="_blank" type="submit" id="etiket_yazdir_buton" class="btn btn-primary">Etiket</button>
    </form>
    Ama karşı tarafta sadece son gelen değerin formu oluşuyor.

    Şu şekilde karşılıyorum:

    <?php
        $seri_sorgu = $db->prepare("SELECT * FROM STOCKSERIES WHERE SERIESNO = '{$_POST['seri_no']}'");
        $seri_sorgu->execute();
        while ($seriyigetir=$seri_sorgu->fetch(PDO::FETCH_ASSOC)){ ?>
    
        // değişken içerikler...
    
       <?php } ?>
    Alt alta tamamı gelsin istiyorum ama sadece sonuncusu geliyor örnekteki 21042512 değeri.
    Karşılama kodunda fetch değerini fetchAll ile değiştirince hiç bir şey gelmiyor.
    Bu kısmı da düzenlemem de yardımcı olur musunuz ?
  • 10-02-2022, 21:21:50
    #5
    diziyi json_encode veya serialize ile gönderebilirsin;
    <input class="hidden" type="text" id="sorgu_formu" name="seri_no" autocomplete="off"  value="<?=htmlspecialchars(json_encode($seriler))?>">
    daha sonra diziyi okuyup sorguda kullanabilirsin;
    $seriler = json_decode($_POST['seri_no']) ;
    $seri_sorgu = $db->prepare("SELECT * FROM STOCKSERIES WHERE SERIESNO IN(".implode(',', array_fill(0, count($seriler), '?')).")");
    $seri_sorgu->execute($seriler);
  • 10-02-2022, 21:43:24
    #6
    ghergedan adlı üyeden alıntı: mesajı görüntüle
    diziyi json_encode veya serialize ile gönderebilirsin;
    <input class="hidden" type="text" id="sorgu_formu" name="seri_no" autocomplete="off"  value="<?=htmlspecialchars(json_encode($seriler))?>">
    daha sonra diziyi okuyup sorguda kullanabilirsin;
    $seriler = json_decode($_POST['seri_no']) ;
    $seri_sorgu = $db->prepare("SELECT * FROM STOCKSERIES WHERE SERIESNO IN(".implode(',', array_fill(0, count($seriler), '?')).")");
    $seri_sorgu->execute($seriler);
    Hocam ateş ediyor yine, sadece bir yerde ufak bir problem var belki başka arkadaşlarında işine yarar.
    value="<?=htmlspecialchars(json_encode($seriler))?>"
    kısmında çift tırnak kullanınca çalışmadı. onu tek tırnağa dönüştürünce,
    bu şekilde
    value='<?=htmlspecialchars(json_encode($seriler))?>'
    sorun ortadan kalktı.

    İlgilenen arkadaşlar için yeniden düzenleme:
    Tırnak sorunu r10 editöründen kaynaklıymış. Karakter sorunu. Sorun yaşarsanız kopyala yapıştır yapmayıp, editörünüzde tekrar yazarsınız.

    "<?=htmlspecialchars(json_encode($seriler))?>"
    Ve her zaman ki gibi tekrar hızır gibi yetiştiğiniz için teşekkür ederim.
    Beton yetmez. Sevgiler.