Добавить элементы в массив через форму, используя Php - PullRequest
1 голос
/ 23 сентября 2019

Мне нужно добавить элементы в мой существующий массив через форму на сайте, который я сделал.Обычно, когда я отправляю что-то в форме, ему нужно добавить элемент в массив, я могу использовать только php и html для этой проблемы.

Я попробовал array_push, но он не дает мне то, что мне нужно, потому что он не используетформа

<form action="" method="post">
    <input type="text" name="boodschappen"><br><br>
    <input type="submit" value="Verstuur">
</form>
<ul>
    <?php
    $boodschappen = ["aardappelen","aardbeien","3 pakken melk","yoghurt"];

    foreach ($boodschappen as $boodschap) {
        echo "<li>".$boodschap."</li>";
    }
    ?>
</ul>
</body>
</html>

Ответы [ 5 ]

0 голосов
/ 23 сентября 2019

Если я правильно понимаю ваш код, вам понадобится какое-то постоянное хранилище для хранения всех предыдущих представлений в листинге.База данных идеально подходит для длительного хранения. Сеанс будет минимальным требованием:

<?php

session_start();

if (!isset($_SESSION['past_submission']) || !is_array($_SESSION['past_submission'])) {
  $_SESSION['past_submission'] = [];
}
if (!empty($_POST) && isset($_POST['boodschappen']) && !empty(trim($_POST['boodschappen']))) {
  array_push($_SESSION['past_submission'], $_POST['boodschappen']);
}
$past_submission = $_SESSION['past_submission'];

?>
<html>
<body>
<form action="" method="post">
    <input type="text" name="boodschappen"><br><br>
    <input type="button" value="Verstuur">
</form>
<ul>
    <?php
    $boodschappen = ["aardappelen","aardbeien","3 pakken melk","yoghurt"];
    array_push($boodschappen, ...$past_submission);

    foreach ($boodschappen as $boodschap) {
        echo "<li>".$boodschap."</li>";
    }
    ?>
</ul>
</body>
</html>

Обратите внимание, что сессия работает только для сеанса посетителя.Данные недоступны другим посетителям или вам.

Как описано выше, вам, вероятно, понадобится MariaDB / MySQL / PostgreSQL хранить материалы на длительный срок.Вам, вероятно, потребуется использовать PDO для вставки данных или извлечения данных из базы данных.

0 голосов
/ 23 сентября 2019
    <?php session_start(); ?>
    <ul>
        <?php
        if (!empty($_POST['submit'])) {

            $_SESSION['boodschappen'][] = $_POST['boodschap'];

           foreach ($_SESSION['boodschappen'] as $boodschap) {
               echo "<li>".$boodschap."</li>";
           }
        } else {
           $_SESSION['boodschappen'] = [];
        }  
        ?>
    </ul>
    <form action="" method="post">
        <input type="text" name="boodschap"><br>
        <input type="submit" name="submit" value="Verstuur">
    </form>
0 голосов
/ 23 сентября 2019
<?php
$a=array("red","green");
array_push($a,"blue","yellow");

echo "<pre>";
print_r($a);
?>
0 голосов
/ 23 сентября 2019

Возможно, вот так?

<html>
    <head><title></title></head>
    <body>
        <form action="" method="post">
            <input type="text" name="boodschappen"><br><br>
            <input type="submit" value="Verstuur">
        </form>
        <ul>
            <?php

                $boodschappen = ["aardappelen","aardbeien","3 pakken melk","yoghurt"];

                if( $_SERVER['REQUEST_METHOD']=='POST' && !empty( $_POST['boodschappen'] ) ){
                    $boodschappen=array_merge( $boodschappen, explode(' ', $_POST['boodschappen'] ) );
                }

                foreach( $boodschappen as $boodschap ) {
                    echo "<li>".$boodschap."</li>";
                }
            ?>
        </ul>
    </body>
</html>

Чтобы обновить массив с сохранением, вы можете использовать переменную сеанса следующим образом:

<?php
    session_start();

    if( !isset( $_SESSION['boodschappen'] ) ){
        $_SESSION['boodschappen']=["aardappelen","aardbeien","3 pakken melk","yoghurt"];
    }

?>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <form action="" method="post">
            <input type="text" name="boodschappen"><br><br>
            <input type="submit" value="Verstuur">
        </form>
        <ul>
            <?php



                if( $_SERVER['REQUEST_METHOD']=='POST' && !empty( $_POST['boodschappen'] ) ){
                    $items=explode(' ', $_POST['boodschappen'] );
                    foreach( $items as $item )$_SESSION['boodschappen'][]=$item;
                }

                foreach( $_SESSION['boodschappen'] as $boodschap ) {
                    echo "<li>".$boodschap."</li>";
                }
            ?>
        </ul>
    </body>
</html>
0 голосов
/ 23 сентября 2019
<?php
$post = $_POST;
$boodschappen = ["aardappelen","aardbeien","3 pakken melk","yoghurt"];
$result = array_merge($post, $boodschappen);

foreach ($result as $item) {
        echo "<li>".$item."</li>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...