将复选框组值存储为变量

时间:2014-11-13 23:17:05

标签: php arrays variables

我正在尝试将所选复选框的值存储在多页表单上,以便我可以将其包含在表单的最后一页(以及发送给站点所有者的电子邮件中)。

我已经研究了如何显示这些值,但是为了以后保存它们让我感到难过。我正在学习,所以如果这很容易,我不会感到惊讶......

这是我使用的代码:

<?php foreach ($_POST['fooby'] as $key => $entry) {
                if(is_array($entry)){
                    print $key . ": " . implode(',',$entry) . "<br>";
                }
                else {
                    print $key . ": " . $entry . "<br>";
                }
            } ?>

这是我得到的结果:

1: Minor Service £129
2: plus MOT £35

这正是我所追求的 - 虽然我不需要在开头的数字。如何保存该信息以供日后使用?

使用下面的更新代码,我现在得到以下结果:

Minor Service £129
plus MOT £35

这很完美,但我正在努力研究如何将这些信息存储到会话变量中。我应该指出,从表单返回的值是事先动态的和未知的。阵列中可能还有10个项目,而不仅仅是上面显示的两个项目。

到目前为止我所拥有的:

<?php if (isset($_POST['fooby'])){
foreach ($_POST['fooby'] as $entry) {
if(is_array($entry)){
$dokval = implode(',',$entry) . "<br>";
echo $dokval; //echoes the expected result on the page
$_SESSION['dokvalues'] = $dokval; //only stores the last item
}
else {
print $entry . "<br>"; //not rewritten this part yet
}
}
}   ?>

3 个答案:

答案 0 :(得分:0)

只需在以下页面的表单中的隐藏输入元素中插入这些值即可再次使用它们:

<input type="hidden" name="<?php echo $key1; ?>" value="<?php echo $value1; ?>" />
<input type="hidden" name="<?php echo $key2; ?>" value="<?php echo $value2; ?>" />
...

答案 1 :(得分:0)

foreach循环遍历数组,每次迭代$key变量是当前索引,$entry是该索引的值。列表中的数字只是索引值的表示。如果你不需要它们,你可以这样做:

<?php foreach ($_POST['fooby'] as $entry) {
        if(is_array($entry)){
            print implode(',',$entry) . "<br>";
        }
        else {
            print $entry . "<br>";
        }
    } ?>

密钥仍会保留在$ _POST [&#39; fooby&#39;]数组中。

答案 2 :(得分:0)

每次foreach循环迭代时,变量$ entry都保存数组的一个值。因此变量$ dokval也只能保存一个值,每次循环迭代时它都会回显。当你查看会话变量时,它的值将是$ dokval持有的最后一个值。使$ dokval成为一个数组并将$ entry值推入其中。 array_push。另外,请确保在每个要使用$ _SESSION变量的页面的开头开始会话。

杰夫