如何多次将输入值放入数组并记住它?

时间:2014-11-25 13:18:33

标签: php arrays forms session post

这有什么解决方案吗?对不起,如果我没有解释这个好。

当我在$ _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!

1 个答案:

答案 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>