Чтобы достичь того, чего вы хотите, я предлагаю использовать сеансы. Имейте в виду, что они не будут храниться вечно, поэтому, если вы ищете постоянное решение, вы должны использовать базу данных для их хранения.
PHP не помнит, что такое последний запрос, поэтому вы нужно хранить его где-то, следовательно, мое предложение использовать сеансы. В настоящее время вы используете «массив HTML», но только один, поэтому он ничего не помогает. Просто используйте обычный ввод и добавьте его в массив, хранящийся в сеансе.
Обратите внимание, что session_start()
должен быть размещен перед любым выходом, поэтому просто поставьте его в верхней части файла.
я сделал некоторые незначительные изменения, а также для улучшения коды (проверки, если значения установлены или нет, и т.д.)
<?php
session_start();
?>
<!-- the start of your HTML goes here -->
<form method="POST">
<input type="text" name="courses" />
<br /><br />
<input type="submit" name="submit" value="Submit">
</form>
<?php
// First we check if the form has been sent and we have a value
if (!empty($_POST['courses'])) {
if (!isset($_SESSION['courses']))
$_SESSION['courses'] = array(); // Initialize the array if it doesn't exist
$_SESSION['courses'][] = $_POST['courses']; // Add the value to our array
}
// If there are values to show, print them!
if (!empty($_SESSION['courses'])) {
foreach ($_SESSION['courses'] as $course) {
echo $course."<br />";
}
}
?>
По комментариям:
Если вы хотите добавить больше информации , например, название и описание, вам нужно добавить соответствующие входы и изменить сессионный-массив соответственно:
<form method="POST">
<input type="text" name="courses" />
<input type="text" name="name" />
<input type="text" name="description" />
<br /><br />
<input type="submit" name="submit" value="Submit">
</form>
<?php
// First we check if the form has been sent and we have a value
if (!empty($_POST['courses'])) {
if (!isset($_SESSION['courses']))
$_SESSION['courses'] = array(); // Initialize the array if it doesn't exist
// Add the value to our array
$_SESSION['courses'][] = array("code" => $_POST['courses'],
"name" => $_POST['name'],
"description" => $_POST['description']);
}
// If there are values to show, print them!
if (!empty($_SESSION['courses'])) {
foreach ($_SESSION['courses'] as $course) {
echo "Code: ".$course['code'].
", name: ".$course['name'].
", description: ".$course['description'].
"<br />";
}
}
?>
и затем, если вы хотите, чтобы очистить массив, вы можете просто отключите его, используя
unset($_SESSION['courses']);
Вы имеете в виду, что вы добавляете один элемент в массив для каждой подачи формы? – Qirel
в некотором смысле да, я хочу, чтобы пользователь мог добавить курс, нажать кнопку «Отправить», и он отобразится, затем промойте и повторите с каждым курсом, отображаемым в соответствии с предыдущим, в некотором смысле, пользователь будет увеличивать массив –