将数据存储在php中的数组中,具有多次提交和eco-self功能


storing data in an array in php with multiple submission and eco self

试图打印多次提交的数据,我希望将姓名和卷号打印/传递到另一个表单。这些数据将从多次提交中生成。在下面的代码中,只打印最后一次提交的数据。我哪里错了。

`

<?php
$name[] = $_POST['name'];
$rollno[] = $_POST['rollno'];
$arrlength=count($name);
for($x=0;$x<$arrlength;$x++)
  {
  echo $name[$x]." - - - - - -".$rollno[$x] ;
  echo "<br>";
  }
?>
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td>Name</td>
    <td><input type="text" name="name" id="textfield" /></td>
  </tr>
  <tr>
    <td>Roll No.</td>
    <td><input type="text" name="rollno" id="textfield2" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="button" id="button" value="Submit" /></td>
  </tr>
</table>
</form>

`

Your input types are not array type. Use LIKE THIS
 <input type="text" name="name[1]" id="textfield" />
 <input type="text" name="name[2]" id="textfield" />
 .
 .
 .
 <input type="text" name="name[n]" id="textfield" />
 IN PHP CODE
 foreach( $_POST['name'] as $v ) {
    echo $v;
  }

想明白了。这是修改后的代码。

<?php
$name = $_POST['name'];
$rollno = $_POST['rollno'];
$arrlength=count($name);
for($x=0;$x<$arrlength;$x++)
  {
  echo $name[$x]."--".$rollno[$x] ;
  echo "<br>";
  }
?>
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
  <tr>
    <td>Name</td>
    <td><?php
    $arrlength1=count($name);
for($x=0;$x<$arrlength1;$x++)
  {
  echo "<input type='hidden' name='name[]' value='$name[$x]' /> " ;
  echo "<input type='hidden' name='rollno[]' value='$rollno[$x]' /> " ;
   }
        ?>
        <input type="text" name="name[]" id="textfield" /></td>
  </tr>
  <tr>
    <td>Roll No.</td>
    <td><input type="text" name="rollno[]" id="textfield2" /></td>
  </tr>
  <tr>
    <td></td>
    <td><input type="submit" name="button" id="button" value="Submit" /></td>
  </tr>
</table>
</form>