【问题标题】:i want to be able to echo all the element in an array?我希望能够回显数组中的所有元素?
【发布时间】:2019-09-04 19:37:04
【问题描述】:

我是 php 和 javascript 的新手,但我对 PHP 更感兴趣。每次通过输入表单添加新元素时,我都想将元素添加到空数组中,然后我希望将这些元素显示到浏览器中。我使用的代码是这样的

  <form action="index.php" method="POST">
    <input type="text" name="name" placeholder="name"><br><br>
    <input type="submit" name="submit" value="enter"><br><br>
</form>

<?php

if (isset($_POST['submit'])) {
    $_SESSION['names']=array();
    $names=$_SESSION['names'];
    $name=$_POST['name'];


    array_push($names,$name);

    for($i=0;$i<count($names);$i++){
        echo $names[$i];
    }


};

我怎样才能显示我通过 php 中的输入字段添加的数组中的每个元素?

【问题讨论】:

  • 那么你的问题是什么?
  • 问题是如何显示我从表单添加到数组中的每个元素并在浏览器中显示?
  • 你的代码不是已经这样做了吗?
  • 不,每次我在表单中添加新值时它都会覆盖该值,

标签: php arrays loops session


【解决方案1】:

您每次都会覆盖该值,因为您会在每次页面加载时清除数组:$_SESSION['names']=array();。而是检查该会话变量是否存在(并且是一个数组)first,如果不存在,则然后 创建它。否则,只需附加到该数组。

<form action="index.php" method="POST">
    <input type="text" name="name" placeholder="name"><br><br>
    <input type="submit" name="submit" value="enter"><br><br>
</form>


<?php
session_start();    

if (isset($_POST['submit'])) {
    if (!isset($_SESSION['names']) || !is_array($_SESSION['names'])) {
        $_SESSION['names'] = array();
    }
    $name = $_POST['name'];
    $_SESSION['names'][] = $name;

    $num_names = count($_SESSION['names']);
    for($i=0;$i<$num_names;$i++){
        echo $_SESSION['names'][$i];
    }
};

【讨论】:

  • 不,约翰它仍然覆盖旧值,不断添加不同的名称,它仍然覆盖表单中的旧值
  • 你记得开始你的会话吗?
  • 约翰,我很抱歉我忘了开始会议,这是我的错误,确实代码运行良好,这就是我要求做的。我非常感谢你,我学会了你的很多代码非常有帮助。非常感谢约翰
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
  • 2023-01-24
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
相关资源
最近更新 更多