如何动态选择复选框

时间:2013-08-01 13:25:06

标签: php database-design

我知道这是一个基本问题,我应该知道答案,但我以前从未考虑过,而且我无法通过谷歌找到任何东西。

我想根据数据库中的信息自动选择或保留未选中的复选框。

例如

我有两对复选框,每一个都有男鞋和女鞋选项。用户可以选择是否只需要男鞋或只有女鞋或两者并且相应地检查复选框。还有另一套牛仔裤,提供相同的选择。

在数据库中我有几列

id | foreignKeyId |鞋子|牛仔裤

id列自动递增,foreignKeyId填充相关的foreignKey,鞋子和牛仔裤填充了ENUM'0','1','2','3'

0 =没有选择

1 =选择了男士

2 =选择女性

3 =两个都被选中

然后我从数据库中提取数据,但我无法确定如何应用这些信息。我假设我需要重新设计我的数据库。

存储和应用此信息的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

如果你想在db中保留这个结构,那么:

查询数据库后,将牛仔裤列的值变为变量。

$jeans = $row["Jeans"];

然后找出你要向用户显示的内容

$mens='';
$womens= '';

switch($jeans){
case "1": $mens=' checked="checked"'; break;
case "2": $womens=' checked="checked"'; break;
case "3": $mens=' checked="checked"'; $womens=' checked="checked"'; break;
}

echo "<input type='checkbox' name='mens' ".$mens." /> Mens";
echo "<input type='checkbox' name='womens' ".$womens." /> Womens";

答案 1 :(得分:0)

  

我想根据自动选择或保留未选中的复选框   数据库中的信息。

你可以试试这个逻辑:

从表中获取行然后迭代。 在每一行上,询问字段的值是否等于复选框的值。 如果是,请将$checked变量的值设置为"checked=true"。 如果不是,请将$checked变量的值设置为&#34;&#34;或一个空字符串。 回应$checked标记中的<input type="checkbox">变量。

像这样:

if($row->value == $checkboxvalue){
   $checked = "checked=true"
}else{
   $checked = "";
}

<input type="checkbox" <?php echo $checked?>>

我希望这会对你有所帮助。 :)

-JCB