仅返回PHP中的已检查(选定)项

时间:2012-09-27 05:29:20

标签: php input checkbox foreach

我无法从项目列表中仅返回选中的项目。我没有只返回选中的项目,而是获得了完整的复选框列表:是否选中。

我有一个表单,它返回带有复选框的多个项目列表。它似乎工作正常,保存用户首选项并正确地将checked="checked"分配给他们选择的项目。

生成如下:

foreach ($this->item as $code => $value) {
    $checked = $this->settings['item'][$code] ? "checked='checked'" : '';
    $output .= "<label style=\"margin-left: 20px;\"><input type='checkbox' {$checked} name='options[item][{$code}]'/>{$this->item[$code]}</label><br />\n\r";
}

我想只返回所选复选框的值。

这就是我一直在尝试的:

foreach ($_POST['items'] as $value) {
    echo "the value are: ".$value;
}

这将返回所有项目,而不是仅返回所选项目。

我也尝试过:

$item = $this->item;
foreach($item as $code) {
    print $code;
}

这也会返回所有已检查和未检查的项目。

有人能指出问题所在吗?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我不确定你在问什么,但我认为你想要之前检查的那些。所以,试试这个:

foreach ($_POST['items'] as $code => $value) {
    if ($this->settings['item'][$code]) {
        echo "the value are: ".$value;
    }
}