为每个选中的复选框提交一个数组

时间:2013-11-14 00:16:45

标签: php arrays forms checkbox

我是php新手,我正在构建一个表单,当用户选中复选框时,我需要发送一对值。

目前我有以下代码(在表单页面中)......

$value = array('title' => $title, 'year' => $year);
echo("<input type=\"checkbox\" name=\"options[]\" value=\"$value\"/>);

在下一页......

foreach($_REQUEST['options'] as $key => $value) {
    $title = $value['title'];
    $year = $value['year'];
    echo("$title ($year)<br/>");
}

从输出中看来,它似乎只是发送“数组”而不是数据。

有没有办法发送和数组作为复选框值,还是有更好的设计来实现这个功能?

1 个答案:

答案 0 :(得分:0)

在echo命令中使用$ value时,必须将数组转换为字符串。 PHP通过将其转换为字符串“Array”来实现此目的。如果您查看生成的HTML,就会看到它实际上是在说。

假设你的标题和年份永远不会有逗号,解决这个问题的一个简单方法是在将数组放入HTML之前使用逗号对数组进行implode(),然后将发布的数据爆炸()到原始数组中:

$value =implode(',',  array($title, $year));
echo("<input type=\"checkbox\" name=\"options[]\" value=\"$value\"/>);

//later on...

foreach($_REQUEST['options'] as $key => $value) {
  list($title, $year) = explode(',', $value);
  echo("$title ($year)<br/>");
}