如何使用会话将数据存储在数组中?
我必须使用会话存储表格数据,即卷号和学生在数组中的标记。 当我这样做时,在提交表单后,以前的值将被新值覆盖。 我想用一个新的索引将数组中的值添加到前一个值旁边。如何使用会话将数据存储在数组中?
这里是我的形式
<form action="#" method="post">
Roll No:<input type="text" name="rollno" value="" id="rollno" />
Marks:<input type="text" name="marks" value="" id="marks" />
<input type="submit" name="submit" value="Submit" onclick="return validate();" />
</form>
和
<?php
session_start();
//session_destroy();
$_SESSION['status'] = array();
$_SESSION['status'][] = @$_POST['rollno'];
$_SESSION['status'][] = @$_POST['marks'];
print_r($_SESSION['status']);
?>
我怎样才能做到这一点,请帮助我吗?然后
$_SESSION['key'] = serialize($yourArray);
当你要添加的东西,只是反序列化它,修改:
这是一种方式......
<?php
session_start();
$i=0;
while(isset($_SESSION[$i])) $i++;
$_SESSION[$i]['rollno'] = $_POST['rollno'];
$_SESSION[$i]['marks'] = $_POST['marks'];
-
-
-
?>
你好,先生,谢谢你的回复,但它不工作。实际上,我必须在表格中逐一插入10个学生记录,并在同一页面上显示输出。当我添加第一个学生记录然后显示输出,但是当我插入第二个学生记录时,它只显示第二个学生记录。我也想显示以前的记录。 – 2013-03-15 06:20:51
发布您的确切代码 – 2013-03-15 10:24:55
您可以添加一个序列化的阵列到会话这样并放回到你的会话中。
我将与样品解释
<?php
session_start();
$_SESSION['data']= array();
$details1=array('pappu','10');
$details2=array('tippu','12');
array_push($_SESSION['data'],$details1);
array_push($_SESSION['data'],$details2);
foreach ($_SESSION['data'] as $eacharray) {
while (list(, $value) = each ($eacharray)) {
echo "Value: $value<br>\n";
}
}
?>
输出
值:pappu
值:10
值:蒂珀
值:12
可以尝试
$rollArray=array($_POST['rollno'],$_POST['marks']);
array_push($_SESSION['status'], $rollArray);
foreach ($_SESSION['status'] as $eacharray) {
while (list(, $value) = each ($eacharray)) {
echo "Value: $value<br>\n";
}
}
您好先生,感谢您的回复,但它不工作。实际上,我必须在表格中逐一插入10个学生记录,并在同一页面上显示输出。当我添加第一个学生记录然后显示输出,但是当我插入第二个学生记录时,它只显示第二个学生记录。我也想显示以前的记录。 – 2013-03-15 06:44:05
您能解释一下您准备添加新数据的位置吗?接下来是有点模糊。添加数组的前一个和新状态的示例。 – vedarthk 2013-03-14 12:41:57
它是'没有'或'没有'吗? – Antony 2013-03-14 12:45:04
使用'isset'来检查是否设置了变量,而不是使用'@'来抑制通知。 – insertusernamehere 2013-03-14 12:45:51