我希望能够回显数组中的所有元素?

时间:2019-04-14 18:37:23

标签: php arrays loops session

我是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输入字段添加的数组内的每个元素?

1 个答案:

答案 0 :(得分:0)

由于每次擦除页面$_SESSION['names']=array();时都要擦除数组,因此每次都覆盖该值。相反,请先检查该会话变量是否存在(并且是一个数组),然后首先;如果不存在,请然后创建它。否则,只需追加到该数组即可。

<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];
    }
};