Birden ile HTML formu gönderme seçeneklerini

2 Cevap php

Ben MySQL tablodan öğeleri kaldırmak için kullanılan küçük bir web uygulaması oluşturmak çalışıyorum. Bu sadece bir HTML tablosunda ve her öğe için öğeleri gösteren bir düğme [delete]:

item_1 [delete]
item_2 [delete]
...
item_N [delete]

Bunu başarmak için, dinamik bir HTML forma PHP ile tablo oluşturmak. Bu form, o zaman tabii ki N [delete]-düğmeleri vardır. Form veri aktarımı için POST-yöntemi kullanmalısınız.

Silmek için ben yürütme php Skript için ilgili öğenin ID (MySQL tablosunda birincil anahtar) göndermek istedim. Yani (Bütün bu alanlar ID karşılık gelen madde depolamak name='ID' buna sahip hidden alanları tanıttı.

Basarken Ancak, keyfi [delete], her zaman sadece son ID (yani son ID gizli alanının değeri) göndermek gibi görünüyor.

Birden fazla form kullanmadan karşılık gelen madde sadece ID alanını göndermek için herhangi bir yolu var mı? Yoksa sadece birini sunmaları-düğme ile birden çok formdaki verileri göndermeniz mümkün mü? Ya ben bile herhangi bir tamamen farklı bir yol seçmeliyim?

Ben sadece tek bir form yapmak istiyorum neden nokta her öğenin yanındaki konulmamalıdır bazı "küresel" parametreleri vardır, ama sadece bir kez bütün tablo için.

2 Cevap

her zaman sadece son kimliğini göndermek gibi görünüyor

Bu hepsi gönderir, ancak adı [] ile bitmiyor beri, PHP son tarafından atar.

Birden fazla form kullanmadan karşılık gelen madde sadece Kimlik alanını göndermek için herhangi bir yolu var mı?

Hayır En azından bazı talihsiz JavaScript olmadan. (Adları ve değerleri ile) Hepsi (özürlü olmayan) gizli girişler başarılı olacaktır. Bir tıkladım giriş elemanı yakınlık dayalı sınırı olamaz.

Ben doğru hedefleri anlamak, iki ana seçenek var.

  1. (Silme tuşu ile hücrede) satır başına bir formu koyun
  2. Encode the id value into the name of the submit button

Sen gizli alanların kurtulmak ve bu gibi göndermek düğmeleri isim alabilir:

<input type="submit" name="delete[1]" />
<input type="submit" name="delete[2]" />
<input type="submit" name="delete[3]" />

ve daha sonra

<?php

if (isset($_POST['delete'])) {
   $toDeleteId = key($_POST['delete']);
}