我是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/>");
}
从输出中看来,它似乎只是发送“数组”而不是数据。
有没有办法发送和数组作为复选框值,还是有更好的设计来实现这个功能?
答案 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/>");
}