【发布时间】:2015-05-27 02:21:55
【问题描述】:
我正在寻找一种方法来检查复选框是否已分配给数据库中的类别。
<?php
try{
// Selecting entire row from cat_list table
$results = $dbh->query("SELECT cat_id, cat_title FROM cat_list");
}catch(Exception $e) {
echo $e->getMessage();
die();
}
$category = $results->fetchAll(PDO::FETCH_ASSOC);
?>
<br>
<label><input type="checkbox" name="" class="selectall"/> Select all</label>
<div id="checkboxlist" >
<?php
foreach($category as $cat){
?>
<input type="checkbox" value="<?php echo $cat["cat_id"]; ?>" <?php echo ($cat['cat_id'] == 1) ? 'checked="checked"' : ''; ?> name="cat_no[]" id="box1"> <?php echo $cat["cat_title"]; ?></a><br>
<?php
}
因此,当我创建帖子时,我从显示为数组的可用类别中选择,上面的代码取自我的编辑帖子表单,因此我希望它检索我分配给它的类别并勾选框。
我有 3 张桌子:
doc_list (Stores documents)
cat_list (Stores Categories)
cat_doc_link_table (stores the doc_id & cat_id from the previous two tables)
它们的形成方式如下:
CREATE TABLE `cat_doc_link_table` (
`id` int(11) NOT NULL,
`link_cat_id` int(11) NOT NULL,
`link_doc_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE `cat_list` (
`cat_id` int(11) NOT NULL,
`cat_title` varchar(32) NOT NULL,
`cat_color` varchar(20) NOT NULL,
`cat_icon` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf16 AUTO_INCREMENT=66 ;
CREATE TABLE `doc_list` (
`doc_id` int(11) NOT NULL,
`doc_title` varchar(50) NOT NULL,
`doc_content` text NOT NULL,
`doc_created` datetime NOT NULL,
`user_id` int(11) NOT NULL,
`doc_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf16 AUTO_INCREMENT=295 ;
【问题讨论】:
-
你遇到了什么问题?
-
@DaGhostmanDimitrov 这样我就可以将帖子插入到数据库中,包括我选择的类别(有一个连接表,它采用帖子中的 id 和类别中的 id)并以这种方式存储值.这个想法是让我能够回到帖子,并且它已经勾选了我分配给它的复选框。
-
这很好,但我似乎无法弄清楚您发布的代码有什么问题以及您面临的问题是什么?请注意,没有正确问题陈述的问题最终会被关闭,并且不符合常见问题解答中的 SO 精神(请参阅stackoverflow.com/help/on-topic)
-
@DaGhostmanDimitrov 存在问题,因为我尝试做的事情不起作用?
-
查看我链接的常见问题解答,这类问题被认为是题外话。