我正在尝试显示一个已选中的复选框,如果已在数据库中为商店分配了值,我有以下但不确定为什么它不起作用,它当前没有检查任何复选框,即使它们已分配值
$stores = array();
$stmt = DB::query(Database::SELECT, 'SELECT `id`, `store`, `store_name`, `branch_name` FROM `mystores` WHERE `site` = :site ORDER BY `store_name` ASC, `branch_name` ASC');
$stmt->param(':site', $this->permissions['site'][0]);
try {
$result = $stmt->execute()->as_array();
if (count($result) >= 1) {
foreach ($result as $row) {
$checked = in_array($row['store'], $assigns) ? 'checked="checked"' : '';
$stores[] = '<label><input type="checkbox" name="stores['.$row['store'].']" value="'.$row['store'].'"'.$checked.' />'.$row['store'].' - '.$row['store_name'].' - '.$row['branch_name'].'</label>';
}
}
} catch (Exception $e) {
FB::error($e);
}
答案 0 :(得分:1)
我想你错过了.'"'.$checked.'
的空格,应该是.'" '.$checked.'
答案 1 :(得分:0)
在我放弃任何一种方法工作之前,我猛烈地反对in_array
条件(至少以三种不同方式编写)和各种表格加入mysqli_query
两天。无论我做了什么,我都无法根据数组中的值自动检查复选框。
最后,我用jQuery设计了自己的解决方案,它就像一个魅力。
如果您有兴趣,请在此处查看: https://stackoverflow.com/a/26433841/1896348