通过html隐藏表单元素将PHP中的数组传递给另一个PHP脚本

通过html隐藏表单元素将PHP中的数组传递给另一个PHP脚本,php,html,Php,Html,我的问题是,当我使用会话变量在不同的php脚本之间复制数组元素时,不会输出任何内容。下面是我的两个php文件 file1.php $SQL = "SELECT * FROM tblquestions"; if ($db_found) { $result = mysql_query($SQL); $numRows = mysql_num_rows($result); //return number of rows in the table ec

我的问题是,当我使用会话变量在不同的php脚本之间复制数组元素时,不会输出任何内容。下面是我的两个php文件

file1.php

   $SQL = "SELECT * FROM tblquestions";
if ($db_found) {
        $result = mysql_query($SQL);
        $numRows = mysql_num_rows($result); //return number of rows in the table
        echo '<FORM NAME ="form1" METHOD ="POST" ACTION ="file2.php">';
        for ($i = 1; $i <= 2; $i++)
        {
            $db_field = mysql_fetch_assoc($result);
            $qID[$i] = $db_field['QID'];
            $question[$i] = $db_field['Question'];
            $A[$i] = $db_field['qA'];
            $B[$i] = $db_field['qB'];
            $C[$i] = $db_field['qC'];
            echo '<P>';
            print $question[$i];
            echo '<P>';
            echo "<INPUT TYPE = 'Radio' Name = '".$qNum."'  value= 'A'>"; 
            print $A[$i];
            echo '<P>';
            echo  "<INPUT TYPE = 'Radio' Name = '".$qNum."'   value= 'B'>"; 
            print $B[$i];
            echo '<P>';
            echo  "<INPUT TYPE = 'Radio' Name = '".$qNum."'   value= 'C'>"; 
            print $C[$i];
            //if (isset($_POST[$name_Value]))
            $survey_Answers[$i-1] = $_POST[$qNum];
            print '</BR>'.$survey_Answers[$i-1]."</BR>";
            $question_Number = ltrim($qNum,'q');
            $question_Number++;
            $qNum ='q'.$question_Number;
        }

        echo '<p>';
    session_start();
    $_SESSION['answers'] = $survey_Answers;
        echo '<INPUT TYPE = "Submit" Name = "Submit1"  VALUE = "Click here to vote">';

        echo '</form>';
$SQL=“从TBL问题中选择*”;
如果($db_){
$result=mysql\u查询($SQL);
$numRows=mysql_num_rows($result);//返回表中的行数
回声';

对于($i=1;$i,我非常确定存储的会话值需要是字符串

在file1.php中更改:

$_SESSION['answers'] = $survey_Answers;
$results = $_SESSION['answers'];
为此:

$_SESSION['answers'] = json_encode($survey_Answers);
$results = json_decode($_SESSION['answers']);
然后在file2.php中更改:

$_SESSION['answers'] = $survey_Answers;
$results = $_SESSION['answers'];
为此:

$_SESSION['answers'] = json_encode($survey_Answers);
$results = json_decode($_SESSION['answers']);

为什么不直接将其保存到会话变量中呢?HTML文档中的任何内容都可以手动修改。不确定这是否是问题中的输入错误,但当您第一次提交表单时,//if(isset($\u POST[$name\u value])$survey\u Answers[$i-1]=$\u POST[$qNum]在
value
之后缺少一个
=
;打印“
”。$survey_Answers[$i-1]。“
”;$question_Number=ltrim($qNum,'q'))$question_Number++$qNum='q'.$question_Number;这部分是第一次使用。因此,下次提交表单时,您将获得$Survey_答案的值,而不是第一次。您只需使用无线电输入,而不必依赖另一个数组。您的意思是在我的第一个for循环中添加隐藏的form元素。a增益,我不需要一个数组来保存这些多个值,因为我将在另一个php脚本上使用它们。@N.B.也许这就是他想要做的。我尝试了这个方法。但是,我将我的操作修改为file1.php。所以我键入了以下命令:echo$\u SESSION['answers'][0];输出是一个方括号。在文件1中,$\u SESSION['answers']=json_encode($survey_Answers);添加这一行并发布结果:echo var_dump($_SESSION['Answers']);实际上,让我发疯的是,当我使用任何其他非数组类型的变量时。所有操作都正常。这是执行以下操作的输出:echo var_dump($_SESSION['Answers']);string'[]“(length=2)看起来$survey\u Answers变量是一个空数组。要确认,您是否可以在代码$u会话['Answers']=json\u encode($survey\u Answers)上方执行变量转储($survey\u Answers);