我正在尝试构建一个分布在三个页面上的简单HTML表单。第一页询问用户的名字和姓氏。第二页要求他的国家&他是否愿意收到更多信息。在第三页中,显示用户输入的所有信息
第一页有一个名为“Next”的按钮,用于转到第二页。第二页有两个按钮,名为“完成”以进入最后一页,“后退”按钮返回第一页。
我使用名为“data”的全局数组来保存用户在每个页面上输入的值。
问题是,我无法访问最终页面中的所有数组值。当我尝试访问值时,仅显示在第二页中选择的国家/地区。即使我将这些值存储在数组中,也不会显示在第一页中输入的名字和姓氏。
如何在最终页面上显示所有输入的值?
这是我的代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php
$data=array();
?>
<?php
if(!isset($_POST['next1']) && !isset($_POST['next2']) && !isset($_POST['back1']))
Display1();
else if(isset($_POST['next1']))
{
global $data;
array_push($data, $_POST['text1']);
array_push($data, $_POST['text2']);
Display2();
}
else if(isset($_POST['back1']))
{
Display1();
}
else if(isset($_POST['next2']))
{
global $data;
$country=$_POST['country'];
foreach($country as $x)
array_push($data, $x);
Display3();
}
?>
<?php
function Display1()
{
?>
<form id="form1" action="Multi.php" method="post">
<label>Enter First Name: </label>
<input type="text" name="text1" />
<br />
<br />
<label>Enter Last Name: </label>
<input type="text" name="text2" />
<br />
<br />
<input type="submit" name="next1" value="Next" />
<?php
}
function Display2()
{
?>
<form id="form2" action="Multi.php" method="post">
Select Country
<select name="country[]" multiple="multiple">
<option value="India">India</option>
<option value="USA">USA</option>
<option value="China">China</option>
</select>
<br />
<br />
<input type="submit" name="next2" value="Finish" />
<input type="submit" name="back1" value="Back" />
<?php
}
function Display3()
{
global $data;
foreach($data as $x)
echo $x . "<br>";
}
?>
</body>
</html>
答案 0 :(得分:2)
请求之间不保留正常变量,请求彼此独立。
使用隐藏的输入字段添加所有内容(您可以通过$_POST
然后访问它们)或使用session_start()
开始会话并将其保存在$_SESSION
中。确保在最顶层开始会话,之前一定不能发送单个字节!
答案 1 :(得分:-1)
对于在所有函数之外声明的任何变量,使用$GLOBALS['data'];
希望这就是你要找的东西。