Есть форма ввода. Надо заполнить массив данными из формы и вывести. Но у меня не получается аккумулировать записи. Каждый ввод стирает предыдущий. Как сделать так чтобы записи добавлялись к массиву?
<form action="/notes.php" method="post">
<label for="text">Новая запись:</label>
<input type="text" name="text" id="text"><br>
<button type="submit">Добавить новую запись</button>
</form>
<?php
$arr = [];
$newNote = $_POST['text'];
$arr[] = $newNote;
foreach ($arr as $value){
echo $value;
}
?>
Как сделать так чтобы записи добавлялись к массиву?
Использовать сессию для ввода/вывода notes.php, до завершения надо сохранить в один из вариантов представленных ниже:
<?php
session_start();
// Добавит запись потом можно будет вывести
$_SESSION['notes'][] = filter_var ($_POST['text'], FILTER_SANITIZE_STRING);
Использовать файлы для ввода/вывода записей (не самый удачный)
$note = filter_var ($_POST['text'], FILTER_SANITIZE_STRING);
$yor_file = file_put_contents('notes.txt', $note.PHP_EOL , FILE_APPEND | LOCK_EX);
Использовать базу данных для ввода/вывода записей (рекомендованный)
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO notes (text) VALUES (:text)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':text', $_POST['text']);
$stmt->execute();
Будет логичнее потом расспечатывать, на той странице которая послала эти записи.
Скорее в связке с сессией, которая до завершения сохранит все в базу данных, будет оптимальным решением.
Сомнительная у Вас идея, но пусть так:
<form action="/notes.php" method="post">
<label for="text">Новая запись:</label>
<input type="text[]" name="text[]" id="text"><br>
<?php
if (isset($_POST['text']))
foreach ($_POST['text'] as $value){
echo '<input type="hidden" name="text[]" value="'.$value.'">';
}
?>
<button type="submit">Добавить новую запись</button>
</form>
<?php
if (isset($_POST['text']))
foreach ($_POST['text'] as $value){
echo $value.'<BR>';
}
?>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости