0

我是 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/>");
}

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

有什么方法可以发送和排列为复选框值,还是有更好的设计来实现此功能?

4

1 回答 1

0

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

假设您的标题和年份永远不会有逗号,解决此问题的一种简单方法是在将数组放入 HTML 之前用逗号 implode(),然后将发布的数据explode() 放回原始数组:

$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/>");
}
于 2013-11-14T00:26:51.307 回答