【发布时间】:2019-09-18 12:18:00
【问题描述】:
我有 3 张桌子: 产品、类别和产品类别。 我正在创建一个为产品编辑(插入/删除)类别的表单。 我正在尝试在关系表中插入一组复选框。
<input name="category[]" type="checkbox" value="<?php echo $cat->slug; ?>">
我知道如何插入选中的值,但我不知道如何删除未选中的值。
$category = $_POST['category'];
for ($i = 0; $i < count($category); $i++) {
if (!empty($category)) {
$verifycategory = BD::conn()->prepare("SELECT * FROM `product_category` WHERE id_product = ? AND id_category = ?");
$verifycategory->execute(array($id_prod, $category[$i]));
if ($verifycategory->rowCount() == 0) {
$anm = BD::conn()->prepare("INSERT INTO product_category(id_product, id_category) VALUES(?,?)");
$anm->execute(array($id_prod, $category[$i]));
}
}
}
【问题讨论】:
-
使用stackoverflow.com/questions/19239536/…中描述的隐藏字段
-
更好,使用
??null-coalescing 运算符添加默认值。 -
如果在插入刷新页面后不涉及 jquery/js,并且基于从产品类别中选择的显示复选框应该反映您的更改。实际上没有删除,它甚至不会在那里! ..或者可以使用 .html 并使用 jquery 替换文本
-
找到了一个非常简单快速的解决方案!删除与产品相关的所有记录并再次插入。就我而言,关系表的 id 无关紧要。