PHP tüm Kontrol Kutusu Enumerate

4 Cevap

Bir tablodaki tüm kayıtları görüntüler PHP web sayfası var. Ben bir satırı seçin ve ardından sayfayı göndermek için bir onay kutusunu tüm satırlar ve kullanıcıya karşı onay kutularını eklemek istiyorum. Sayfa teslim edildiğinde tüm onay kutularını numaralandırmak ve onlar kontrol olup olmadıklarını kontrol etmek istiyorum, nasıl yapabilirim?

4 Cevap

Creating the form

Aşağıdaki gibi HTML oluşturabilirsiniz:

<form [action, method etc]>
  <table>
  <?php 
    foreach($dataSet as $dataRow) : 
  ?>
      <tr>
         <td>
            <input type="checkbox" name="dataRow[]" value="<?=$dataRow['id']?>"/>
         </td>
         [Additional details about datarow here]
      <tr>
  <?php 
    endforeach; 
  ?>
  </table>
</form>

AFTER POST

içine bakmak $_POST['dataRow']: Bu yüzden array_values $_POST['dataRow'] size seçilen tüm kimlikleri verecektir üzerinde kullanarak, $ DataRow değerleri IDS ile bir dizi olacak satırlar:

<?php
   $checkedRows = array_values($_POST['dataRow']);
   foreach($checkedRows as $row) {
      // Do whatever you want to do with the selected row
   }

Bu gibi kutularını oluşturmak gerekir:

<input name="rows[]" value="uniqueIdForThisRow" type="checkbox" />
<input name="rows[]" value="anotherId" type="checkbox" />

Sonra böyle içlerinden döngü yapabilirsiniz:

<?php
    // $_POST['rows'] contains the values of all checked checkboxes, like:
    // array('uniqueIdForThisRow', 'anotherId', ...)

    foreach ($_POST['rows'] as $row) {
        if ($row == 'uniqueIdForThisRow') {
            // do something
        }
    }
?>

PHP docs on dealing with forms, özellikle örnek # 3 bkz.

if i were you... i wouldn't fight with altering html table structure. you can handle that with Javascript frameworks like JQuery which is very effective solution for you. you deal only a few lines of JS code and you don't need exaggerate the html output (i guess it's probably long enough). about jquery there is a good source named visual jquery if you have never used that.

here is the way how to do that. you dont need to edit inside the loop. you just only put an id to your table tag. then add new column to your table with checkboxes inside. then you can get the values of checkboxes & serialize them in to a hidden input. or you can handle selected rows with ajax easy. i think JS framework will work better.

Normalde ben sonrası birçok bağlantıları ekledim ama yeni kullanıcılar için izin yok diyor.