在页面之间使用$ _POST方法

时间:2014-02-02 23:34:23

标签: php forms post foreach

我有三个单独的PHP页面。在第一页上,我使用'keywords'列从我的数据库中提取信息,我将其转为复选框:

$i=0;
foreach(explode(',', $keywords) as $keyword) {
    if($keyword != ""){
        $keyword = trim($keyword);
        $chkname = "checkbox{$i}";
        $i = $i+1;
        echo '<input type="checkbox" name="chkboxes[]" value="'.$keyword.'" id="chk_'.$keyword.'" />
                <label for="chk_'.$keyword.'">'.$keyword.'</label>'."<br />";

然后我将此信息传递到第二个PHP脚本,该脚本显示用户实际选中标记的复选框:

if(isset($_POST['chkboxes'])) {
  foreach($_POST['chkboxes'] as $chkbox) {
        echo '- '.$chkbox."<br />";

在第三个PHP脚本中,我想获取用户已勾选的复选框,并将其回显。出于某种原因,我无法弄清楚,我无法抓住已检查的复选框。我试过在第二个php页面上添加一个隐藏的输入字段,

if(isset($_POST['chkboxes'])) {
  foreach($_POST['chkboxes'] as $chkbox) {
        echo '- '.$chkbox."<br />";
        '<input type="hidden" name="options[]" id="options" value=" ' . $chkbox . '"/>';
  }

和使用的第三个PHP脚本:

if(isset($_POST['options'])){
    $options = $_POST['options'];
}

我不知道从哪里开始。任何帮助将不胜感激,我将选择正确的答案。现在,在第三个php页面上,我一直在使用print_r($_POST);来查看会发生什么。一切正常,除了它没有张贴选中的复选框。

1 个答案:

答案 0 :(得分:2)

在这种情况下,您可以使用会话。请参阅:http://php.net/manual/en/book.session.php

顺便说一下:你提交了隐藏的输入吗?