这是一个包含从名为“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 :(得分:0)
我不知道你为什么需要这个,但在你的情况下,我会这样做:
categories_chk
请参阅,我将print_r($_POST['categories_chk'])
的索引设置为类别ID。
如果您foreach ($_POST['categories_chk'] as $id => $name) {
echo 'Category id ' . $id . ' with name ' . $name;
}
,您将拥有一个key =&gt;值数组,其中key是类别ID,value是它的名称。
你可以迭代它:
$row["cat_id"]
当然,我需要提一下{{1}}必须唯一这样的方法,否则你将在数组中有两个相同的键,后者会覆盖前一个。