1

提交时,我有一堆复选框,将值(如果选中)添加到数组并序列化,然后连续保存在我的数据库中。

现在我想在编辑页面上显示复选框,并选中相应的复选框。

我目前正在输出复选框......

HTML

6 w <input type="checkbox" name="size[]" value="6 w">
7 w <input type="checkbox" name="size[]" value="7 w">
8 w <input type="checkbox" name="size[]" value="8 w">

我试过回显一个检查过的值,但不知道如何检查正确的值。这是我遇到的一个网站的一个建议......

HTML

6 w <input type="checkbox" name="size[]" value="6 w" <? echo $checked['6 w'] ?> >
7 w <input type="checkbox" name="size[]" value="7 w" <? echo $checked['7 w'] ?> >
8 w <input type="checkbox" name="size[]" value="8 w" <? echo $checked['8 w'] ?> >

PHP

$size = unserialize($row["size"]);        
$array = "";
foreach($size as $size_available)
{
  $array .= "$size_available,";
}
  $array_explode = explode(',',$array);

    //$checked = "";
    foreach ($array_explode as $v){
    $checked[$v] = "checked='CHECKED'";
}

这几乎可以显示选中的正确复选框,但是任何未存储在数组中的复选框都会给出未定义的索引错误。我猜是因为它输出的是一个空变量???

有什么建议可以从这里开始,或者如何以更好的方式做到这一点?

干杯

4

2 回答 2

1

在访问它之前验证是否设置了索引isset()-

<? echo (isset($checked['8 w']))? $checked['8 w'] : "" ?>
于 2012-09-24T04:27:09.770 回答
0

改变这个:

foreach($size as $size_available)

为了这:

foreach($_REQUEST['size'] as $size_available)

不需要反序列化命令。

于 2012-09-24T04:27:58.673 回答