2017-05-11 51 views
0

這是一個表格,其中包含從名爲「categories」的數據庫表中檢索的動態複選框。我正在嘗試的是在新頁面上回顯類別ID +名稱。我想要所有選定的類別與他們的ID。問題是輸出顯示類別名稱,但它顯示了每個名稱的最後一個類別標識。帶動態值的動態複選框ID

<form method="post" action="insert_try.php" enctype="multipart/form-data"> 
<label>Select categories</label> 
<?php 
$result = mysqli_query($con,"select * from categories"); 
if (mysqli_num_rows($result) > 0) { 
while($row = mysqli_fetch_array($result)) { 
?> 
<br><input type="checkbox" name="categories_chk[]" value="<?= $row["cat_name"]; ?>"> <?= $row["cat_name"]; ?> 
<input type="text" name="cat_chk_id" value="<?= $row["cat_id"]; ?>"> 
    <?php 
     } 
    } 
    ?> 
    <input type="submit" name="submit" value="Add"> 
    </form> 

insert_try.php

if(isset($_POST['submit'])) { 
$cat_chk = $_POST['categories_chk']; 
$cat_chk_id=$_POST['cat_chk_id']; 
foreach ($cat_chk as $checkbox) { 
    echo $checkbox; 
} 
echo $cat_chk_id; 

回答

0

我不知道爲什麼你需要這個,但你的情況我會做到這一點:

while($row = mysqli_fetch_array($result)) {?> 
    <br><input type="checkbox" name="categories_chk[<?= $row["cat_id"]; ?>]" value="<?= $row["cat_name"]; ?>"> <?= $row["cat_name"]; ?> 
<?php 
} 

看,我設置了的索引作爲類別ID。

如果你print_r($_POST['categories_chk'])你將有一個key => value數組,其中key是類別id,value是它的名字。

你可以迭代它還挺:

foreach ($_POST['categories_chk'] as $id => $name) { 
    echo 'Category id ' . $id . ' with name ' . $name; 
} 

當然,我需要一提的是​​必須對這種做法獨特,否則就會有兩個相同的按鍵陣列,後者覆蓋前一個。

+0

賓果遊戲!非常感謝 :) – tabia