输入字段中的PHP关联数组

时间:2015-03-27 13:56:26

标签: php html arrays session associative-array

我正在开发一个php脚本,我需要一个包含2个输入字段的表单,其中包含名称和ID。当我输入名称和id时,它们存储在关联数组中。只要id小于或等于100,名称和id就存储在关联数组中。输入大于100的id时,php脚本将显示先前输入的名称,并显示相应的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>

1 个答案:

答案 0 :(得分:1)

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

<?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