如何使用session将表单数据存储在数组中?

时间:2013-03-14 12:39:00

标签: php arrays session

我必须使用会话存储表格数据,即学生的卷号和标记。 当我这样做时,在提交表单后,新值会覆盖以前的值。 我想用新索引在前一个值旁边的数组中添加值。

这是我的表格

<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']);                    
?>

我该怎么做才能帮助我?

3 个答案:

答案 0 :(得分:1)

这是一种方式......

<?php
session_start();
$i=0;

while(isset($_SESSION[$i])) $i++;

$_SESSION[$i]['rollno'] = $_POST['rollno'];
$_SESSION[$i]['marks'] = $_POST['marks'];
-
-
-
?>

答案 1 :(得分:0)

您可以将序列化数组添加到如下会话中:

$_SESSION['key'] = serialize($yourArray);

然后,当您想要添加内容时,只需将其反序列化,修改并将其放回会话中。

答案 2 :(得分:0)

我将用样本解释

  <?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
价值:tippu
价值: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";
    }
    }