我正在尝试将多个表单中的值存储在$_POST
变量中。表单在不同的页面上,从我从测试中可以理解的,当我从表单提交值时,他们会覆盖"已经在$_POST.
这是我想要做的一个例子:
第1页 - 表格1
<?php
session_start();
?>
<form method="post" action="page2.php">
First name : <input type="text" name="firstName" required ><br/><br/>
Last name : <input type="text" name="lastName" required ><br/><br/>
<input type="submit">
</form>
第2页 - 表格2
<?php
session_start();
?>
<form method="post" action="page3.php">
Age : <input type="text" name="age" required ><br/><br/>
City : <input type="text" name="city" required ><br/><br/>
<input type="submit">
</form>
第3页 - 结果
<?php
session_start();
echo $_POST['firstName'].'<br/>';
echo $_POST['lastName'].'<br/>';
echo $_POST['age'].'<br/>';
echo $_POST['city'].'<br/>';
?>
最后一页仅向我显示&#39; 和&#39; city&#39; 。现在,第1页上第一个表单的值未定义。以下是我得到的结果示例:
Notice: Undefined index: firstName on line 4
Notice: Undefined index: lastName on line 5
65
纽约
答案 0 :(得分:4)
把这个
<input type="hidden" name="firstname" value="<?=$_POST['firstname']?>">
<input type="hidden" name="lastname" value="<?=$_POST['lastname']?>">
答案 1 :(得分:1)
你也可以使用这样的会话变量:
// Page 1
<?php
session_start();
$_SESSION['user'] = array();
$_SESSION['user']['firstName'] = $_POST['firstName'];
$_SESSION['user']['lastName'] = $_POST['lastName'];
?>
// Page 2
<?php
session_start();
$_SESSION['user']['age'] = $_POST['age'];
$_SESSION['user']['city'] = $_POST['city'];
?>
//结果
<?php
session_start();
echo $_SESSION['user']['firstName'];
echo $_SESSION['user']['lastName'];
echo $_SESSION['user']['city'];
echo $_SESSION['user']['age'];
?>
答案 2 :(得分:0)
正如我在上面的代码中看到的那样,您试图将数据发布到两个不同的文件中。
<form method="post" action="page2.php">
此操作页面为 page2.php 。
<form method="post" action="page3.php">
您要将数据提交至 page3.php
您正在尝试访问
echo $_POST['firstName'].'<br/>';
echo $_POST['lastName'].'<br/>';
page3.php 中的已传递到 page2.php 。当然,这不起作用,因为您只能访问通过表单的操作页面中的表单提交的值。