Значения PHP из ввода продолжают сбрасываться после ввода - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь создать программу, которая печатает массив из пяти введенных пользователем элементов. Каждое поле ввода должно принимать значение от пользователя, сохранять его в массиве и распечатывать значение этого массива. Однако значения сбрасываются и становятся нулевыми при вводе текста в следующем поле ввода. Вы можете понять, что я имею в виду, заглянув на сайт.

https://people.emich.edu/ghaines1/cosc231/stringReverse.php

В конце концов я хочу распечатать значения строк и в обратном порядке. Я уверен, что это довольно просто, но я еще не изучал это, так как мне нужно, чтобы эта первая часть работала первой.

Так что в идеале часть PHP должна распечатываться:

$ вход [0]

$ вход [1]

$ вход [2]

$ вход [3]

$ вход [4]

при условии, что он сохранил эти значения. Опять же, моя проблема в том, что я не могу напечатать более одного значения, потому что они сбрасываются и становятся нулевыми, когда я ввожу значение в следующее текстовое поле. Вот код:

<form action="stringReverse.php" method = "post">
<input name="st1" type="text" size="50" placeholder="Enter phrase"><br><br>
</form>
<form action="stringReverse.php" method = "post">
<input name="st2" type="text" size="50" placeholder="Enter phrase"><br><br>
</form>
<form action="stringReverse.php" method = "post">
<input name="st3" type="text" size="50" placeholder="Enter phrase"><br><br>
</form>
<form action="stringReverse.php" method = "post">
<input name="st4" type="text" size="50" placeholder="Enter phrase"><br><br>
</form>
<form action="stringReverse.php" method = "post">
<input name="st5" type="text" size="50" placeholder="Enter phrase"><br><br>
</form>


<?php


if ($_SERVER["REQUEST_METHOD"]=="POST") {

    $input = array (0, 0, 0, 0, 0);

    if (is_null($_POST["st1"]) == false) {
        $input[0] = $_POST["st1"];
        echo $input[0] . "<br>";
    }

    if (is_null($_POST["st2"]) == false) {
        $input[1] = $_POST["st2"];
        echo $input[1] . "<br>";
    }

    if (is_null($_POST["st3"]) == false) {
        $input[2] = $_POST["st3"];
        echo $input[2] . "<br>";
    }

    if (is_null($_POST["st4"]) == false) {
        $input[3] = $_POST["st4"];
        echo $input[3] . "<br>";
    }

    if (is_null($_POST["st5"]) == false) {
        $input[4] = $_POST["st5"];
        echo $input[4] . "<br>";
    }

}
?>

1 Ответ

2 голосов
/ 01 апреля 2019

потому что вы определяете форму для каждого ввода

измените html на:

<form action="stringReverse.php" method = "post">
<input name="st1" type="text" size="50" placeholder="Enter phrase"><br><br>
<input name="st2" type="text" size="50" placeholder="Enter phrase"><br><br>
<input name="st3" type="text" size="50" placeholder="Enter phrase"><br><br>
<input name="st4" type="text" size="50" placeholder="Enter phrase"><br><br>
<input name="st5" type="text" size="50" placeholder="Enter phrase"><br><br>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...