输入字段中的PHP关联数组


PHP Associative Array from input field

我正在编写一个php脚本,根据该脚本,我必须创建一个包含2个输入字段的表单,这些字段由名称和id组成。当我输入名称和id时,这些字段存储在关联数组中。只要id小于或等于100,名称和id就会存储在关联数组中。当输入大于100的id时,php脚本将显示之前输入的名称,并显示它们对应的id。但是,当我输入名称和Id时,只显示一个名称和一个Id,并且替换当前的名称和Id。当我输入大于100的Id时,无论输入的名称是什么,我都希望显示一个名称和Id列表。请参阅下面的代码:

<?php
$id = 100;        
if(isset($_POST['lname']) && isset($_POST['id'])) {        

    $name = $_POST['lname'];
    $ids = $_POST['id'];
    while($GLOBALS['id'] <= 100) {
        $lists = array($name => $ids);
        foreach($lists as $key => $val) {
            echo $key . ' ' . $val . '<br>';
        }
 }   
}
?>
<form action = "index.php" method = "POST">
Name:<br>
<input type = "text" name = "lname"><br><br>
Marks:<br>
<input type = "text" name = "id"><br><br>
<input type = "submit" value = "Submit">
</form>

您可以使用会话来实现您想要的目标,请参阅以下代码:

<?php  
session_start();
if(isset($_POST['lname']) && isset($_POST['marks'])){        
if($_POST['marks'] <= 100) {
$_SESSION['info'][] = array($_POST['lname'] => $_POST['marks']);
}
}
if(isset($_SESSION['info'])) {
for($i = 0; $i < count($_SESSION['info']); $i++) {
  foreach($_SESSION['info'][$i] as $name => $marks){
    echo '<p>' . $name . '<br>';
    echo $marks . '</p>';
 }
} 
}
?>
<form action = "<?php echo $_SERVER['PHP_SELF'];?>" method = "POST">
Name:<br>
<input type = "text" name = "lname"><br><br>
Marks:<br>
<input type = "text" name = "marks"><br><br>
<input type = "submit" value = "Submit">
</form>

你应该阅读一些关于会话的文档:

http://php.net/manual/en/intro.session.php