【问题标题】:PHP Associative Array from input field来自输入字段的 PHP 关联数组
【发布时间】:2015-05-31 21:11:13
【问题描述】:

我正在编写一个 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>

【问题讨论】:

  • 如果你想在对服务器的请求之间维护数据,那么你需要将它存储在持久性的地方,比如会话、文件或数据库
  • 数组在这种情况下不起作用?就像只要 Id 不大于 100,名称和 Id 都存储在关联数组中。当输入大于 100 的 Id 时,所有以前输入的名称和 Id 都会显示在浏览器上。
  • 一个数组不是持久的:是的,你会想要一个数组,但是你需要在请求之间的某个地方存储这个数组...... session 是存储它的明显地方
  • 关于如何进行的任何提示?

标签: php html arrays session associative-array


【解决方案1】:

你可以使用 session 来实现你想要的,看这段代码:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多