2016-04-07 20 views
0

SQL Select ifadesinden bir tablo oluşturuyorum ancak satırların seçilebilmesi için her satırda bir onay kutusu ekliyorum, ancak her satırda nasıl döngü yapılacağını öğrenemiyorum kutunun kontrol edilip edilmediğini görmek için bu oluşturulan tablo.HTML tablo verilerine PHP'de erişme

Bu mümkün mü?

Tabloyu nasıl oluşturacağımı, doldurmayı ve düğmeyi nasıl kontrol edeceğinizi biliyorum. Düğmeye her satırda girilen hücreye nasıl erişilebileceğiyle ilgili çalışma yapamıyorum.

onlar benim SQL gelen satırlar arasında döngü ne zaman bir radyo düğmesi ile birlikte girdileri bağlamak kullanmak istiyorsanız

+0

Ve ne denediniz mi? –

+1

Bu, verilerin nasıl düzenlendiğine bağlıdır. Radyo düğmeleri, kullanıcının sadece birini seçebilmesi için tasarlanmıştır, böylece sadece hangisinin seçildiğini görebilirsiniz. Çoklu seçim isteseydi, daha sonra, adının sonuna ve kimliği olarak değere '[]' ekleyerek bir dizi olarak birbirine bağlamak, onay kutularını kullanın '$ _POST [ 'checkbox_name']' yoluyla foreach olabilir. –

cevap

0

SEÇ tablo ile birlikte oluşturulan bireysel olarak her onay kutusunu oluşturamıyor adından sonra [] ekleyerek dizi. <input type="radio" name="foo[]" /> Ardından diziye foreach ilmik ile erişebilirsiniz.

Bir dizide bir [] ile de hepsini aynı ad vermek -box bir çek kullanmak istiyorsanız

ve her biri farklı bir value özelliği. <input type="checkbox" name="foo" value="1" /> Değerlere foreach ilmik ile erişebilirsiniz.

(her iki durumda da Aksi halde dizi php yalnızca seçilen radyo düğmelerini okur olarak kullanmak mümkün değildir. Her radyo düğmesi önce gizli girdi varsayılan bir değer gerekir.)

+0

Bir onay kutusunu kullanmam gerektiği gibi görünüyor, sadece bir radyo düğmesi seçebileceğinizi unuttum. Ancak, sahip olduğum sorun, SELECT ifademdeki satırlar arasında dolaşırken, yalnızca tek tek oluşturulmayan onay kutularını oluşturuyor. – DSTL

+0

Her itterasyona 1 ekleyen bir sayaç ekleyebilirsiniz. Veya SQL satırınızdan değer olarak bir değer kullanın. – MartijnICU

+0

Bu mantıklı, yeni bir satır oluşturmak için her değiştiğinde bir değişkeni artırabilirim. Ben gerçi değerlerine erişmek için bir foreach döngüsü kullanabilirsiniz emin değilim? – DSTL

0

Öncelikle, Ben bu olduğunu kabul edeceğiz Bu konuda gitmenin en iyi yolu ama sorununuzu çözecek.
İkincisi, HTML Giriş öğesini type="checkbox" olarak değiştirmenizi öneriyorum. kontrol edildiği bilmek edebilmek için, aşağıda şuna benzer için kodunuzu ayarlamanız gerekir:

<!-- HTML part --> 
<form action="" method="post"> 
    <!-- we need the form as the parent to the table so content can be posted to the server --> 
    <table ....> 
     <thead> 
      <tr> 
       <th>&nbsp</th> <!-- we'll put our checkboxes in this column of the table --> 
       ... 
      </tr> 
     </thead> 
     <tbody> 
      <?php 
       foreach ($rows as $row) { 
      ?> 
      <tr> 
       <td><input type="checkbox" name="chkSelect[]" value="<?php echo $row['id']; ?>" /></td> 
       .... 
      </tr> 
      <?php 
       } 
      ?> 
     </tbody> 
    </table> 
    <button type="submit" name="btnDelete" value="">Delete</button> <!-- This is assuming we're trying to delete the selected items --> 
</form> 
<!-- HTML end --> 

Bu noktada, bizim formu hazır olması; Bu PHP tarafında bir dizi olarak işlenmesine olanak verir, onay kutusu adı ondan sonra [] sahip olduğunu not edin. PHP tarafında
, sadece şöyle normal form işleme yapmanız gerekir:

if (filter_has_var(INPUT_POST, 'btnDelete')) { 
    $checkedIds = filter_input(INPUT_POST, 'chkSelect', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); 
    // if we loop through the array, we can see the selected item ids 
    var_dump($checkedIds); 
} 

Umut bu sorunuzu, mutlu kodlama cevap! ;)

+0

Teşekkürler, bazı sorularımı temizledi.Form işleminizi nasıl yaptığınıza biraz aşina değilim. Bildiğim kadarıyla filter_has_var isset'e benziyor mu? Filter_input ne yapıyor? Teşekkürler :) – DSTL

+0

@fesil 'filter_has_var', belirtilen süper küreseller içinde bu ada sahip bir [gerçekten bir dizi anahtar] değişkeni olup olmadığını kontrol eder. 'filter_input', artık '$ checkedIds = $ _POST [' chkSelect '];' işlevinin tersine, superglobals'a erişmek için tercih edilen yoldur. "Filter_input" öğesine sağladığım diğer parametreler, değeri basit bir türden farklı olarak bir dizi olarak alabilmem oldu. Http://php.net/manual/en/function.filter-input.php –

+0

Buradan daha fazla bilgi alabilirsin. Tamam, hepsini aldım, ama buradan nereye gittiğimi bilmiyorum. Tabloya bir kez donduğumda, bir diziye seçilen kimlikleri eklemek istiyorum, ki daha sonra bir veritabanında saklayabilirim. $ kontrolll Burada bir dizi var mı? – DSTL

İlgili konular