复选框返回“ on”而不是设置的值

时间:2019-10-17 04:35:56

标签: php html forms

当我选中复选框时,我无法产生输出。我正在运行Ubuntu Linux 18.04.2,Apache版本2.4.29,MySQL版本5.7.27和PHP版本7.2.19。

据我所知,我正确设置了复选框,但是它们返回的值为“ on”,而不是我在页面上设置的数值。我包含了一个print_r请求,以了解正在发生的事情。

输入脚本:

    for ($aid = 0; $aid < count($a_id); $aid++)
{
print '<input type="checkbox" NAME="articleid[' . $aid . '] VALUE="' . $a_id[$aid] . '">text<br>
';
}

输入页面来源:

        <input type="checkbox" NAME="articleid[0] VALUE="1">text<br>
        <input type="checkbox" NAME="articleid[1] VALUE="42">text<br>

输出脚本:

   print_r($articleid);

已选中2个框的输出页面源:

    Array
    (
        [20] => on
        [32] => on
    )

对于选中的复选框,我希望可以将数值结果用于定位记录以进行进一步处理,但是我只是得到表明已选中它们的指示。没有错误消息。

1 个答案:

答案 0 :(得分:2)

如果您恰好使用了这一行代码

<input type="checkbox" NAME="articleid[' . $aid . '] VALUE="' . $a_id[$aid] . '">text<br>

那你在这里有错误

NAME="articleid[' . $aid . '] VALUE="' . $a_id[$aid] . '"

必须是

name="articleid[' . $aid . ']" value="' . $a_id[$aid] . '"

您只是忘记了

前的简单

总结

for ($aid = 0; $aid < count($a_id); $aid++)
  {
    print '<input type="checkbox" name="articleid[' . $aid . ']" value="' . $a_id[$aid] . '">text<br>';
  }

我还认为用小写形式写html属性更好。

我希望这会有所帮助:)