$ article是一个数组:
$article= array();
//values
$article['title'] = $item->title;
$article['url'] = $item->link;
$article['description'] = $item->description;
这些是使用simpleXML通过xml解析获得的 当我提交复选框时(无论多少都被勾选)我尝试运行循环,foreach甚至是嵌套,但它只是打印数组。
我有一种复选框形式:
echo'<td><input type="checkbox" name="article[]" value="'.$article.'"><br> </td>';
我从表单中获取结果如下:
$value = $_POST['article'];
然后
for ($row = 0; $row < 3; $row++)
{
echo "The row number $value[$row]";
echo '<br/>';
for ($col = 0; $col < 3; $col++)
{
echo "$value[$row][$col]";
echo '<br/>';
}}
我认为它可能是一个多维关联数组但却无处可去。 我真的可以和某人指出我做错了什么。
使用Yordi的解决方案找到了解决方案,但是billyonecan也注意到将xml对象转换为字符串。
所以我的价值观应该是 //值
$article['title'] = (string)$item->title;
$article['url'] = (string)$item->link;
$article['description'] = (string)$item->description;
在序列化之前。
答案 0 :(得分:0)
您无法回显数组(因此,请查看下面的编辑) - 这就是您在checkbox
值内尝试执行的操作。 您可以手动创建索引,并回显相应的值。
正如@Yordi所指出的,你可以serialize
数组:
<input type="checkbox" name="article[]" value="<?php echo htmlentities(serialize($article)); ?>" />
然后unserialize
将其发布到服务器后:
foreach ($_POST['article'] as $a) {
$value = unserialize($a);
echo $value['title']; // url, description..
}