这有什么解决方案吗?对不起,如果我没有解释这个好。
当我在$ _POST ['name']中添加一些值并提交表单时,我想将该值放在数组($ arr)中,当我在$ _POST ['name']中第二次输入一些不同的值时提交表单我希望将值放入数组($ arr)中。现在该数组应该有两个元素(来自$ _POST ['name']的第一个值和第二个值)
<?php
session_start();
$_SESSION['name'] = 1;
$arr =array();
if(isset($_POST['submit']) && trim($_POST['name']) != '') {
$arr[] = $_POST['name'];
}
print_r($arr);
?>
<form action="" method="post">
<input type="text" name="name" value="" />
<input type="submit" name="submit" value="Submit" />
</form>
我开始了会话,如果提交了表单,那就是chacked,如果是一个空字段。 我尝试使用值为$ token = rand()的隐藏输入;并且它没有用。
这应该很容易,但我有一些麻烦做修复它.Tnx!
答案 0 :(得分:1)
PHP是一种无状态语言,不会将变量从一个页面加载存储到另一个页面加载。每次提交表单时,$arr
变量都会在页面处理完后从内存中销毁。
如果要在页面加载中保留信息,则需要将其作为键值对存储在超级全局变量$_SESSION
中。
如果您使用下面的修改代码,当表单发布在可以使用$_SESSION['name']
和数字索引访问的两级多维数组中时,它会将输入的值存储到名称输入中。
<?php
session_start();
if(isset($_SESSION['name']) && !is_array($_SESSION['name']))
{
$_SESSION['name'] = array();
}
if(isset($_POST['submit']) && trim($_POST['name']) != '') {
$_SESSION['name'][] = $_POST['name'];
}
print_r($_SESSION);
?>
<form action="" method="post">
<input type="text" name="name" value="" />
<input type="submit" name="submit" value="Submit" />
</form>