通过html隐藏表单元素将PHP中的数组传递给另一个PHP脚本
我的问题是,当我使用会话变量在不同的php脚本之间复制数组元素时,不会输出任何内容。下面是我的两个php文件 file1.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
$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);