v2.5.2
Giriş yap

Form içerisine birden fazla input ekleme ve kontrol etme.

kaymakli
235 defa görüntülendi

Merhaba arkadaşlar, Bir İş Teklif sayfası hazırlıyorum.
Teklif İçeriği olan ürünler kısmında sorun yaşıyorum.

Bir Tablo Düşünün Her Satırında Ayrı Form İnputlar Var.

<form action="" method="post">
    
<table id="table" class="table-sm">
	<thead>
	    <tr>
			<th>Yapılacak İşin Cinsi</th>
			<th>Toplam Miktar</th>
			<th>Birim</th>
	    </tr>
	</thead>
	<tbody class="tbody">
		<tr class="satir">
			<td><input name="cins-1" type="text"></td>
			<td><input name="miktar-1" type="text"></td>
			<td><input name="birim-1" type="text"></td>
		</tr>
		<tr class="satir">
			<td><input name="cins-2" type="text"></td>
			<td><input name="miktar-2" type="text"></td>
			<td><input name="birim-2" type="text"></td>
		</tr>
		<!--
		    Sınırsız Sayıda Satır Eklene Bilir.
		    Eklenen Satırlardaki İnputlara cins-2, cins-3, cins-4...
		    gibi farklı isimler vererek ekleyebiliyorum.
		-->
	</tbody>
</table>

<input name="toplamSatir" value="2" type="text">
</form>

ASIL PROBLEM:
PHP Tarafından Kaç Tane input Eklenmiş?
ve Eklenen İnputları Ayrı Ayrı Nasıl Kontrol Edebilirim?

Not: ToplamSatır isminde tipi hidden olarak ayarlı input değerini satır eklendikçe mevcut satır sayısı ile değiştirebiliyorum.
yani PHP Tarafından Toplam Eklenen Satır Sayısını Alabiliyorum.

Geri Dönüşlerinizi Bekliyorum. Herkeze Hayırlı Günler Dilerim.

Cevap yaz
Cevaplar (1)
ebykdrms
536 gün önce

stackoverflow'daki bir örneğe dayanarak aşağıdaki çözümü deneyebilirsin:

<form action="" method="post">
    <table id="table" class="table-sm">
	    <thead>
	        <tr>
    			<th>Yapılacak İşin Cinsi</th>
    			<th>Toplam Miktar</th>
    			<th>Birim</th>
    	    </tr>
    	</thead>
    	<tbody class="tbody">
    		<tr class="satir">
    			<td><input name="rows[0][cins]" type="text"></td>
    			<td><input name="rows[0][miktar]" type="text"></td>
    			<td><input name="rows[0][birim]" type="text"></td>
    		</tr>
    		<tr class="satir">
    			<td><input name="rows[1][cins]" type="text"></td>
    			<td><input name="rows[1][miktar]" type="text"></td>
    			<td><input name="rows[1][birim]" type="text"></td>
    		</tr>
    		<!--
    		    Sınırsız sayıda satır eklenebilir.
    		    Eklenen satırlardaki input'lara rows[2][cins], rows[3][cins]...
    		    gibi farklı isimler vererek ekleyebiliyorum.
    		-->
    	</tbody>
    </table>
    <!-- Aşağıdaki input'a artık gerek yok -->
    <input name="toplamSatir" value="2" type="text">
</form>
    // $satirSayisi = $_POST["toplamSatir"]; // Artık gerek yok...
    $satirSayisi = count($_POST["rows"]);
    
    $rows = $_POST["rows"];
    
    // Verilere ulaşım örneği:
    $ilkSatir_cins = $rows[0]["cins"];
    $ikinciSatir_miktar = $rows[1]["miktar"];