Tek sütunda çoklu içerik girebilme
Merhabalar arkadaşlar,
Bir konuda fikir danışmak istiyordum da;
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
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
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
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
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.