• 21-02-2016, 17:07:34
    #1
    Herkese merhaba
    Adet girip sipariş ver denildiğinde o adet kadar diğer sayfaya input ekleniyor.
    Yani; 10 yazıp sipariş ver butonuna bastığımda formun yönlendiği sayfada 10 adet input çıkıyor. inputların name bölümünde ise "arkayazi[<?php echo $x;?>]" yazıyor. "x" foreach ile gelen sayıdır.
    Bunları veritabanına nasıl kayıt yaptırabilirim.

    İlgili kodları da aşağıya paylaşıyorum.

    ayrinti.php
    <div class="product-options fix">
    <div class="quantity-area">
    <label>Adet :</label>
    <div class="cart-quantity">
    <form id='myform' method='POST' action='siparisver.php'>
    <div class="product-quantity">
    <div class="cart-quantity">
    <div class="cart-plus-minus">
    <input class="cart-plus-minus-box" type="text" name="adet" min="10" value="10" />                                                        </div>
    <input type="text" hidden="hidden" name="uidd" value="<?php echo $urun; ?>" />                                                            </div>
    </div>
    </div>
    </div>
    <div class="product-cart-area-list">
    <div class="btn-add-to-cart cart-btn"><button class="large button orange">SİPARİŞ VER</button></div>
    </div>
    </form>
    </div>
    siparisver.php
    <form action="sipok.php" method="POST">
    <?php for ( $x=0; $x<$_POST['adet']; $x++ ):?>
    <div class="s-data">
    <label style="font-size:24px;"><strong>.</strong></label><input type="yazi" id="<?php echo $x;?>" name="arkayazi[<?php echo $x;?>]" placeholder="İsim Yazın" required size="5" class="required" />
    </div>
    <?php endfor;?>
    </form>
    Kısacası elimde foreach döngüsü ile verilen sayı kadar açılan input değerleri var ve bunları veritabanına kayıt etmek istiyorum.

    Yardım ederseniz memnun olurum 3 gündür uğraşıyorum henüz bir sonuca varamadım.
  • 21-02-2016, 20:23:50
    #2
    önemli değil ama type="yazi" değil type="text" olmalı

    Kayıt kısmına gelecek olursak
    foreach($_POST['arkayazi'] as $sonuc):
          // kayit işlemleri buraya
    endforeach;
    şeklinde olmalı
  • 21-02-2016, 20:32:54
    #3
    By_MiLaT adlı üyeden alıntı: mesajı görüntüle
    önemli değil ama type="yazi" değil type="text" olmalı

    Kayıt kısmına gelecek olursak
    foreach($_POST['arkayazi'] as $sonuc):
          // kayit işlemleri buraya
    endforeach;
    şeklinde olmalı
    Teşekkür ederim deneyeceğim durumu haber veririm. type="yazi" bölümünü birşey denemiştim ondan kaldı. Zaten düzelttim.
  • 22-02-2016, 23:17:22
    #4
    By_MiLaT adlı üyeden alıntı: mesajı görüntüle
    önemli değil ama type="yazi" değil type="text" olmalı

    Kayıt kısmına gelecek olursak
    foreach($_POST['arkayazi'] as $sonuc):
          // kayit işlemleri buraya
    endforeach;
    şeklinde olmalı
    By_MiLaT peki bu inputtan 3 adet yaparsam bunu nasıl kullanabilirim. Yani; arkayazi, numara ve beden olarak geliyor.

    Bu şekilde işe yarar mı?
    foreach($_POST['arkayazi'] as $sonuc, $_POST['beden'] as $beden, $_POST['numara'] as $numara):
          // kayit işlemleri buraya
    endforeach;
  • 23-02-2016, 17:59:10
    #5
    böyle bir kullanım şekli yok malesef şu şekilde yapabilirsiniz
    $i=0;
    foreach($_POST['arkayazi'] as $sonuc): 
         $beden   = $_POST['beden'][$i];
         $numara = $_POST['numara'][$i];
    $i++;
    endforeach;
  • 28-02-2016, 01:25:54
    #6
    By_MiLaT adlı üyeden alıntı: mesajı görüntüle
    böyle bir kullanım şekli yok malesef şu şekilde yapabilirsiniz
    $i=0;
    foreach($_POST['arkayazi'] as $sonuc): 
         $beden   = $_POST['beden'][$i];
         $numara = $_POST['numara'][$i];
    $i++;
    endforeach;
    <?php
    if($_POST){
    foreach($_POST['arkayazi'] as $arkayazi):
    $beden   = $_POST['beden'][$i];
    $numara = $_POST['numara'][$i];
    $i++; 
    $sort=$_POST['sort'];
    $sortnumara=$_POST['sortnumara'];
    $sortnot=$_POST['sortnot'];
    $logo=$_POST['logo'];
    $logoyukle=$_POST['logoyukle'];
    $logofail=$_POST['logofail'];
    $reklam=$_POST['reklam'];
    $reklamyukle=$_POST['reklamyukle'];
    $reklamfail=$_POST['reklamfail'];
    $kol=$_POST['kol'];
    $onnumara=$_POST['onnumara'];
    $yaka=$_POST['yaka'];
    $kdvlifiyat=$_POST['kdvlifiyat'];
    $toplamadet=$_POST['adet'];
    $adsoyad=$_POST['adsoyad'];
    $ceptel=$_POST['ceptel'];
    $adres=$_POST['adres'];
    
    echo 'Sipariş İçeriği gönderildi.';
    echo 'Şort Var mı?:'.$sort.'<br />';
    echo 'Şortda Numara Var mı?'.$sortnumara.'<br />';
    echo 'Şort Notu:'.$sortnot.'<br />';
    echo 'Logo:'.$logo.'<br />';
    echo 'Logo Yüklensin mi?:'.$logoyukle.'<br />';
    echo 'Logo Yükleyemedim?:'.$logofail.'<br />';
    echo 'Reklam Var mı?:'.$reklam.'<br />';
    echo 'Reklam Yüklensin mi?:'.$reklamyukle.'<br />';
    echo 'Reklam Yükleyemedim?:'.$reklamfail.'<br />';
    echo 'Kol Çeşidi?:'.$kol.'<br />';
    echo 'Ön Numara?:'.$onnumara.'<br />';
    echo 'Yaka Var mı?:'.$yaka.'<br />';
    echo 'Kdvli Fiyat?:'.$kdvlifiyat.'<br />';
    echo 'Toplam Adet?:'.$toplamadet.'<br />';
    echo 'Adı Soyadı?:'.$adsoyad.'<br />';
    echo 'Cep Tel?:'.$ceptel.'<br />';
    echo 'Adres?:'.$adres.'<br />';
    echo 'Adres?:'.$adres.'<br />';
    echo 'Arka Yazı?:'.$arkayazi.'<br />';
    echo 'Numara?:'.$numara.'<br />';
    echo 'Beden?:'.$beden.'<br />';
          // kayit işlemleri buraya
    endforeach;
    }
    ?>
    Bu şekilde yazdığımda;
     Warning: Invalid argument supplied for foreach() in D:\AppServ\***\***\siparisver.php on line 342
    hatayı alıyorum.
  • 28-02-2016, 01:40:31
    #7
    bugrabalcanci adlı üyeden alıntı: mesajı görüntüle
    <?php
    if($_POST){
    foreach($_POST['arkayazi'] as $arkayazi):
    $beden   = $_POST['beden'][$i];
    $numara = $_POST['numara'][$i];
    $i++; 
    $sort=$_POST['sort'];
    $sortnumara=$_POST['sortnumara'];
    $sortnot=$_POST['sortnot'];
    $logo=$_POST['logo'];
    $logoyukle=$_POST['logoyukle'];
    $logofail=$_POST['logofail'];
    $reklam=$_POST['reklam'];
    $reklamyukle=$_POST['reklamyukle'];
    $reklamfail=$_POST['reklamfail'];
    $kol=$_POST['kol'];
    $onnumara=$_POST['onnumara'];
    $yaka=$_POST['yaka'];
    $kdvlifiyat=$_POST['kdvlifiyat'];
    $toplamadet=$_POST['adet'];
    $adsoyad=$_POST['adsoyad'];
    $ceptel=$_POST['ceptel'];
    $adres=$_POST['adres'];
    
    echo 'Sipariş İçeriği gönderildi.';
    echo 'Şort Var mı?:'.$sort.'<br />';
    echo 'Şortda Numara Var mı?'.$sortnumara.'<br />';
    echo 'Şort Notu:'.$sortnot.'<br />';
    echo 'Logo:'.$logo.'<br />';
    echo 'Logo Yüklensin mi?:'.$logoyukle.'<br />';
    echo 'Logo Yükleyemedim?:'.$logofail.'<br />';
    echo 'Reklam Var mı?:'.$reklam.'<br />';
    echo 'Reklam Yüklensin mi?:'.$reklamyukle.'<br />';
    echo 'Reklam Yükleyemedim?:'.$reklamfail.'<br />';
    echo 'Kol Çeşidi?:'.$kol.'<br />';
    echo 'Ön Numara?:'.$onnumara.'<br />';
    echo 'Yaka Var mı?:'.$yaka.'<br />';
    echo 'Kdvli Fiyat?:'.$kdvlifiyat.'<br />';
    echo 'Toplam Adet?:'.$toplamadet.'<br />';
    echo 'Adı Soyadı?:'.$adsoyad.'<br />';
    echo 'Cep Tel?:'.$ceptel.'<br />';
    echo 'Adres?:'.$adres.'<br />';
    echo 'Adres?:'.$adres.'<br />';
    echo 'Arka Yazı?:'.$arkayazi.'<br />';
    echo 'Numara?:'.$numara.'<br />';
    echo 'Beden?:'.$beden.'<br />';
          // kayit işlemleri buraya
    endforeach;
    }
    ?>
    Bu şekilde yazdığımda;
     Warning: Invalid argument supplied for foreach() in D:\AppServ\***\***\siparisver.php on line 342
    hatayı alıyorum.
    <?php
    if($_POST) {
    $sayi = count($_POST['arkayazi']);
    extract($_POST); // Tüm post name değerlerini değişken olarak ata.
    for($i=0;<=$sayi;$i++) {
         $beden   = $_POST['beden'][$i]; 
         $numara = $_POST['numara'][$i]; 
         $arkayazi = $_POST['arkayazi'][$i];
    
     // sorgu buraya.... 
    }
    
    }
    ?>
    Tam olarak ne yapmak istediğinizi anlamadım ama bu sorununuzu çözecektir. Form karmaşık görünüyor, o yüzden çözemedim.

    Extract fonksiyonu ile aşağıdaki kod karmaşasına gerek kalmayacaktır.
    $sort=$_POST['sort']; 
    $sortnumara=$_POST['sortnumara']; 
    $sortnot=$_POST['sortnot']; 
    $logo=$_POST['logo']; 
    $logoyukle=$_POST['logoyukle']; 
    $logofail=$_POST['logofail']; 
    $reklam=$_POST['reklam']; 
    $reklamyukle=$_POST['reklamyukle']; 
    $reklamfail=$_POST['reklamfail']; 
    $kol=$_POST['kol']; 
    $onnumara=$_POST['onnumara']; 
    $yaka=$_POST['yaka']; 
    $kdvlifiyat=$_POST['kdvlifiyat']; 
    $toplamadet=$_POST['adet']; 
    $adsoyad=$_POST['adsoyad']; 
    $ceptel=$_POST['ceptel']; 
    $adres=$_POST['adres'];
  • 28-02-2016, 02:49:13
    #8
    taSManiaN adlı üyeden alıntı: mesajı görüntüle
    <?php
    if($_POST) {
    $sayi = count($_POST['arkayazi']);
    extract($_POST); // Tüm post name değerlerini değişken olarak ata.
    for($i=0;<=$sayi;$i++) {
         $beden   = $_POST['beden'][$i]; 
         $numara = $_POST['numara'][$i]; 
         $arkayazi = $_POST['arkayazi'][$i];
    
     // sorgu buraya.... 
    }
    
    }
    ?>
    Tam olarak ne yapmak istediğinizi anlamadım ama bu sorununuzu çözecektir. Form karmaşık görünüyor, o yüzden çözemedim.

    Extract fonksiyonu ile aşağıdaki kod karmaşasına gerek kalmayacaktır.
    $sort=$_POST['sort']; 
    $sortnumara=$_POST['sortnumara']; 
    $sortnot=$_POST['sortnot']; 
    $logo=$_POST['logo']; 
    $logoyukle=$_POST['logoyukle']; 
    $logofail=$_POST['logofail']; 
    $reklam=$_POST['reklam']; 
    $reklamyukle=$_POST['reklamyukle']; 
    $reklamfail=$_POST['reklamfail']; 
    $kol=$_POST['kol']; 
    $onnumara=$_POST['onnumara']; 
    $yaka=$_POST['yaka']; 
    $kdvlifiyat=$_POST['kdvlifiyat']; 
    $toplamadet=$_POST['adet']; 
    $adsoyad=$_POST['adsoyad']; 
    $ceptel=$_POST['ceptel']; 
    $adres=$_POST['adres'];
    O değişkenlerin hepsi formda mevcut fakat verdiğiniz kod işime yarar. Teşekkür ederim.
    Ne yapmak istediğimi anlatayım kısaca size de, ben foreach döngüsüyle bir inputa sayı girilip butona basıldığında o sayı kadar input açılmasını sağlıyorum. Sonra o inputları veritabanına kayıt etmek istiyorum. Baştaki sayı kadar input açılımını yaptım fakat veritabanına nasıl kayıt edeceğimi henüz bulamadım.