我的复选框有问题。 我有一些您可以按类别过滤的项目。 所以问题是当您要编辑自动检查正确类别的项目时。 here you see a project but the categories are empty
在我的数据库中,我使用的是一个组合表-一个用于插入类别的表,一个用于项目的组合表,那里有一个组合表。
在这里您看到我的代码,用于显示checkboxes
并选择进行编辑,所以现在我寻求帮助,以检查属于该项目的正确checkbox
。
<div id="categoriefilter">
<?php
$sql = "SELECT * FROM `categories` ORDER BY `id` ASC";
$cats = DB::getResult($sql);
foreach($cats as $cat){
?>
<label>
<input name="cat[]" type="checkbox" value="<?php echo $cat['id']; ?>" >
<?php echo $cat['categorienaam']; ?>
</label>
<?php
}
?>
</div>
答案 0 :(得分:1)
如果我正确理解您的问题。您这里需要3张桌子
表1:projects
id, name, ...
表2:categories
id, name, ...
表3:projects_categories
project_id, category_id, ...
需要第三张表来存储为项目选择的类别
在您的项目页面中
您需要执行以下操作:
这里是示例(这不是工作代码,只是展示)
// your project
$project = DB::getResult("SELECT * FROM project WHERE id = :id "); // <== id here
// list of categories
$categories = DB::getResult("SELECT * FROM categories ");
// list of categories for this project
$project_categories = DB::getResult("SELECT category_id FROM projects_categories WHERE project_id = :project_id ");
$project_categories = (array) $project_categories; // in case DB::getResult is not array
<?php
foreach($categories as $category) :
?>
<label>
<input name="cat[]"
<?php if(in_array($category['id'], $project_categories)) echo 'checked="checked"'; ?>
type="checkbox" value="<?= $category['id']; ?>" >
<?php echo $category['name']; ?>
</label>
<?php endforeach; ?>
答案 1 :(得分:0)
我不是选民。如果您知道自己的问题,则可能不会发布该问题。
您不包括详细信息代码。但是据我所知,
您应该在UPDATE
循环内运行数据库foreach
查询。您无需将html input
保留在循环中。
<?php
// check if checkbox is checked
if (!empty($_POST['cat'])){
foreach($_POST['cat'] as $cat){
// run update query here
$sql = "UPDATE `categories` SET `categorienaam` = $whatever WHERE `id` = $cat";
$result = DB::getResult($sql);
}
}
?>
<label>
<input name="cat[]" type="checkbox" value="<?php echo $RowOfApplicableSelectQuery['id']; ?>" >
</label>
$RowOfApplicableSelectQuery
来自您用于主要获取和显示记录的查询。
我希望它能为您提供有关所寻找内容的线索。