使用会话将数据存储在数组中

时间:2013-03-15 11:53:57

标签: php arrays session

我想使用session将表单数据添加到数组中 我该怎么办,请帮助我 我的HTML表单是:

    <form action="#" method="post">
    Roll No:<input type="text" name="rollno" value="" id="rollno"  />
    <input type="submit" name="submit" value="Submit" />
    </form>

我的PHP代码是:

    <?php
      session_start();
      $_SESSION['rollno'] = isset($_POST['rollno']);
      echo $_SESSION['rollno'];              
    ?>

我想将roll no插入数组中。

我有10名学生的记录。当我插入第一个学生卷号时,它会打印卷号,但是当我插入第二个学生卷号时,它会覆盖第一个学生记录。

我想在同一页面上显示所有10个学生名单 我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:2)

  1. 在您向网页输入任何内容之前启动会话,即在html代码之前

  2. 使会话成为多维数组

  3. isset

    中删除isset($_POST['rollno']);
    <?php
          session_start();
          $_SESSION['rollno'][] = $_POST['rollno'];
          print_r($_SESSION['rollno']);              
    ?>
    

答案 1 :(得分:1)

$_SESSION['rollno']应该是一个数组而不是一个简单的变量。

这样的事情:

  <?php
  //Define somewhere $_SESSION['rollno'] as array. ONLY ONCE. Note that session must be started.
  session_start();
  if (!isset($_SESSION['rollno'])){
      $_SESSION['rollno'] = array();
  }


  if(isset($_POST['rollno'])){
       array_push($_SESSION['rollno'],$_POST['rollno']);
  }
  foreach ($_SESSION['rollno'] as $item){
        echo $item;  
  }   
  ?>

答案 2 :(得分:0)

session_start();
if(isset($_POST['submit'])){
  if(isset($_POST['rollno'])){
      $_SESSION['rollno'] = $_POST['rollno'];
      echo $_SESSION['rollno'];        
  } 
}

首先检查表单是否已提交,然后设置roll,如果是,则将其分配给session var。

答案 3 :(得分:0)

几乎就是

<?php
  session_start();
  !isset($_SESSION['rollno']){$_SESSION['rollno']=array();}
  $_SESSION['rollno'][] = $_POST['rollno'];
?>

另外,建议将动作设置为:

echo("<form action={$_SERVER['PHP_SELF']} method='post'>");

有些人不喜欢使用PHP_SELF并建议硬编码

答案 4 :(得分:0)

我知道!

让我们试试:

<?php
session_start();
$_SESSION['rollno'] = Array();
$_SESSION['rollno'][] = $_POST['rollno']; 
$_SESSION['rollno'][] = $_POST['rollno'];
var_dump($_SESSION['rollno']);
?>

你也可以从循环访问它.. 祝你好运