php - 在php中删除重复的复选框
问题描述
我有两张名为 bookings 和 packages 的桌子。选中的复选框是从预订表中检索的,并且工作正常。但我还需要包表中未选中的复选框。问题是选中的复选框值再次显示。
<?php
$get_pro = "select * from booking";
$result = mysqli_query($con, $get_pro);
$book_packages = $row_pro['Book_Packages'];
$book_packages = substr(trim($book_packages) , 0, -1);
$split_pkg = (explode(",", $book_packages));
if (!empty($split_pkg)) {
foreach ($split_pkg as $book_pkg) {
$checked = (in_array($book_pkg, $split_pkg)) ? 'checked="checked"' : '';
?>
<input type="checkbox" name="pkg_list_name[]" value="<?php echo $book_pkg; ?>" size="17" <?php echo $checked; ?>> <?php echo $book_pkg; ?> <br>
<?php
}
}
$get_pros = "select * from package";
$results = mysqli_query($con, $get_pros);
while ($row_pros = mysqli_fetch_array($results)) {
$package_name = $row_pros['Pkg_Name'];
if ($package_name != $split_pkg) {
echo "<input type='checkbox' data-parsley-required='true' value='$package_name' data-parsley-trigger='click' id='checkbox1' name='pkg_list_name[]'>
<label>$package_name</label><br> ";
} else {
}
}
?>
解决方案
你不应该有两个循环。package
您应该只从表中创建复选框。创建这些复选框时,checked="checked"
如果包名称在$split_pkg
.
$book_packages = trim($row_pro['Book_Packages']);
$split_pkg = array_map('trim', explode(',', $book_packages));
$get_pros = "select * from package";
$results = mysqli_query($con, $get_pros);
while ($row_pros = mysqli_fetch_array($results)) {
$package_name = $row_pros['Pkg_Name'];
$checked = (in_array($package_name, $split_pkg)) ? 'checked="checked"' : '';
echo "<label><input type='checkbox' data-parsley-required='true' value='$package_name' data-parsley-trigger='click' name='pkg_list_name[]' $checked>
$package_name</label><br> ";
}
顺便说一句,将逗号分隔的值放在数据库列中不是一个好主意。您应该为每个预订单独设置一行。然后,您将能够轻松地加入这两个表。
推荐阅读
- java - 有没有办法在 Intellij 中更改“主”目录?
- c - C存储结构列表列表
- vba - 如何让它在当前查看文件夹上工作
- django - 在 django admin 中自动注册某些模型的问题
- python - 如何使用 Numpy 有效地创建条件列数组?
- javascript - 如何在nodejs中形成一个动态的json数组?
- postgresql - 是否可以保证 postgres 中并行聚合函数的最小工作人员数量?
- java - 如何将 YML 值放入 @Pattern(regexp = "HELLO|WORLD")
- vb.net - 如何使用 PostgreSQL 作为数据库和 vb.net windows 窗体在 DataGridView1 中发布数据
- python - 如何为具有扩展用户(onetoone 字段)关系的模型执行 put/patch 方法 django rest框架