2013-03-26 17 views
0

我似乎無法正確工作,通過此列表我有。我有x個表格,其行數在10到200之間。每一行表示一個項目,如果您選擇一個或多個複選框,它會遍歷這些項目,並在需要時更新/添加/刪除行。我會如何去做這件事?如何通過複選框在與其他值鏈接打勾時循環

我目前有一個ID爲[]的隱藏字段,以及兩個帶有[]和特殊[]的複選框。該ID顯然是唯一的項目ID,並且這兩個複選框表示您是擁有普通版本還是特殊版本(或者沒有或兩者都有)。當我遍歷它們時,所有的ID都會被回顯,但我似乎無法將兩個複選框的值連接到它們。一個簡單的for循環將不起作用,因爲所有的ID都被回顯,因此複選框沒有正確循環。

我對PHP有一定的瞭解,所以打你一下吧!

回答

1

你應該嘗試製作二維數組(如果我理解的很好)。您也可以忘記隱藏字段:

checkboxes[<?= $id ?>][own]checkboxes[<?= $id ?>][special]。您有權在PHP這樣的數組:

$_POST['checkboxes'] => array(
         1 => array(
           'own' => 'on' 
         ), 
         3 => array(
           'own' => 'on', 
           'special' => 'on 
         ) 
        ); 

在這裏,你已經檢查「自己」的複選框ID「1」和ID「3」,「自己的」,「特」複選框。

+0

非常好,這是非常明確的。使用foreach(* as $ c){}循環遍歷$ _POST ['checkboxes'],但是如何獲取它的全部ID?我得到[「own」] =「on」,但不知道如何找到那寶貴的,珍貴的ID。 :( – Mave 2013-03-26 20:51:28

+0

Woops,終於得到它了。而不是使用foreach($ _ POST ['checkboxes'] $ c){},這使得你無法檢索複選框的原始ID,你使用foreach($ _ POST ['複選框']爲$ id => $ c){},其中$ id爲KEY值,$ c爲實際內容。感謝您幫助我走上正軌! – Mave 2013-03-26 21:55:21

0

最終產品:

<input type="checkbox" name="product[<?php echo $product['id']; ?>][own]" /> <!-- this is row 20 of the database --> 
<input type="checkbox" name="product[<?php echo $product['id']; ?>][own]" /> <!-- row 64 --> 
<input type="checkbox" name="product[<?php echo $product['id']; ?>][special]" /> <!-- row 127 --> 

一旦提交,該代碼:

foreach($_POST['product'] as $id => $p) { 
    echo "ID: ".$id." - Own: ".$p['own']." - Special: ".$p['special']."<br />"; 
} 

會產生這樣的結果:

ID: 20 - Own: on - Special: 
ID: 64 - Own: on - Special: 
ID: 127 - Own: - Special: on