v2.5.2
Giriş yap

Tek sütunda çoklu içerik girebilme

Anonim
507 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhabalar arkadaşlar,

Bir konuda fikir danışmak istiyordum da;

https://hizliresim.com/5qa444

Resimdeki gibi bir tablom var ve aynı renkte olan içerikler tek sütunda tutmam veya duruma
göre de çoğaltmam gerekiyor yani örneğin şuan tabloda 2 içerik var ve altına tekrar içerik girme durumu olabilir append ile inputları çoğaltmayı düşünüyorum fakat bunları veritabanında nasıl tutsam daha sağlıklı olabilir Ben implode ile aralarına bir karakter koyup kaydederken öyle çekerken de explode ile çözüp öyle çekmeyi düşünüyorum fakat böyle de pek sağlıklı olmuyor gibi varmıdır acaba bu konu hakkında daha önce bir iş veya bir proje geliştirmiş biri şöyle de bir durumlar resimdeki sütunlar her zaman dolu olmayabilir atıyorum 10 alandan 2 si dolu gibi ama alt alta olmaları gerek var tek sayfada ekletmeyi düşünüyorum

teşekkür ederim şimdiden iyi forumlar

Cevap yaz
Cevaplar (4)
onlywhatchess
1402 gün önce

Biraz uzun bir anlatım olucak ama inşallah işini görür çok uzatmadan başlayalım,
Öncelikle sql tablomu paylaşayım

3 sütunluk bir tablom var.


<form action="test.php" method="post">

    <label for="in_1">Input 1</label><br>
    <input type="text" id="in_1" name="input_1"><br><br>
    
    <label for="in_2">Input 2</label><br>
    <input type="text" id="in_2" name="input_2"><br><br>
    
    <div id="content"></div><br>
    
    <button type="submit">Gönder</button>
    
</form>

<button id="form_ekle">Form Ekle</button>

<script src="https://code.jquery.com/jquery-3.5.1.js"></script>

Burasıda senin verilerini girdiğin yer olsun, eğer daha fazla veri girmek istiyorsan diye de form ekle adında buton koyalım. Fazladan form elemanı eklemeyi js ile yaptım ben


$("#form_ekle").click(function() {
    var form_olustur = '';
    var input_sayisi = $("input").length + 1; 
    for ($i = input_sayisi; $i < input_sayisi + 2; $i++) {
        // input_sayisi+2 = 2 input oluşturmak için 
        form_olustur += `
            <label for="in_` + $i + `">Input ` + $i + `</label><br>
            <input type="text" id="in_` + $i + `" name="input_` + $i + `"><br><br>
        ` // form için eleman oluşturur.
    }
    document.getElementById("content").innerHTML += form_olustur; // Oluşan yeni elemanları ekranda gösterir
});

Form Ekle Butonuna Tıklamadan önce bu şekilde görünücek

Tıkladıktan sonra ise:

Şu şekilde doldurulan bir formun

Gönderildikten sonraki işlemleri test.php devam ediyor


// test.php

$s_numara = random_int(100,999).' '.random_int(100,999).' '.random_int(100,999); // Basit bir sipariş numarası oluşturalım
$deneme = $_POST; // Post edilen verileri alalım

foreach($deneme as $deger):

    $sorgu = $db->prepare('INSERT INTO deneme SET input_value = ?, order_number = ?');
    $sorgu->execute([$deger,$s_numara]);

endforeach;


ve çıktısı:

sipariş numarası dediğimiz olay burada hangi veriler o formla kaydedilmiş onu anlamamıza yardımcı oluyor. Sayfamı yeniledikten sonra gönderilen 2. form, farklı bir sipariş numarasıyla kaydolucağı için karışma ihtimalleride oldukça az

video1474
1402 gün önce

Veya şunu sorayım hocam örneğin 5 inputtan oluşan bir formunuz var bunu bir butonla klonlayıp birden fazla yapıp veritabanına kaydederken de ilk verileri ana diğerlerini onun altı gibi nasıl yapabilirim yapılacak olay aslında şu bir sipariş oluşturulucak ve içerisindeki ürünler birden fazla olabilecek fakat ürünleri tek sayfada girmek istiyor inputları klonlarım fakat backendde alırken ilk form değerlerini diğer değerlerden nasıl ayırt edebilirim

video1474
1402 gün önce

@onlywhatchess hocam herhalde söylemek istediğin ilk sipariş normal fakat diğer girilenleri ilk siparişin altı olarak yani il ilçe muhabbeti gibi
yapabilirsin diyorsunuz herhalde

onlywhatchess
1402 gün önce

Ekstra bir sütun ekleyerek sipariş numarası gibi bir şey belirleyerek istenilen birden fazla siparişi bir çatı altında oluşturduğun sipariş numarasıyla toplayabilirsin.