я хочу быть в состоянии отобразить все элементы в массиве? - PullRequest
0 голосов
/ 14 апреля 2019

Я довольно новичок в 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 голосов
/ 14 апреля 2019

Вы перезаписываете значение каждый раз, потому что стираете массив при каждой загрузке страницы: $_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];
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...