0

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

这是我的表格

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

我该怎么做请帮助我?

4

3 回答 3

1

这是一种方式...

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

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

$_SESSION[$i]['rollno'] = $_POST['rollno'];
$_SESSION[$i]['marks'] = $_POST['marks'];
-
-
-
?>
于 2013-03-14T12:44:25.130 回答
0

您可以像这样将序列化数组添加到会话中:

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

然后,当您想添加某些内容时,只需对其进行反序列化、修改并将其放回会话中即可。

于 2013-03-14T12:47:04.113 回答
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";
    }
    }
于 2013-03-14T12:56:26.013 回答