我正在开发一个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>
答案 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>
您应该阅读一些关于会话的文档: