我试图建立一个简单的HTML表单,分布在三个页面。第一页要求输入用户的姓和名。第二页询问他的祖国& &;他是否愿意得到更多的信息。在第三页,显示用户输入的所有信息
第一页有一个名为"Next"的按钮,用于转到第二页。第二页有两个按钮,分别名为"Finish"answers"Back",分别用于进入最后一页和返回第一页。
我使用一个名为"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>
请求之间不保留正常变量,请求之间是相互独立的。
使用隐藏输入字段添加所有这些字段(您可以通过$_POST
访问它们)或使用session_start()
启动会话并将它们保存在$_SESSION
中。确保在最顶端开始会话,之前不能发送一个字节!
对于在所有函数之外声明的任何变量都使用$GLOBALS['data'];
希望这就是你想要的。