あなたが望むことを達成するために、セッションを使うことをお勧めします。これらは永遠に保存されないので、恒久的な解決策を探している場合は、データベースを使用して格納する必要があります。
PHPは最後のリクエストを覚えていないので、どこかに格納する必要があるので、私はセッションを使用することを提案します。現在は "HTML配列"を使用していますが、1つだけなので、実際には何の助けにもなりません。通常の入力を使用し、それをセッションに格納された配列に追加するだけです。
session_start()
は出力前に配置する必要があるので、ファイルの先頭に配置してください。
私はコメントを1として
<?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']);
フォームの送信ごとに1つの項目を配列に追加することを意味しますか? – Qirel
ところで、私はそれをユーザーがコースを追加し、submitを押して、それが表示され、次にリンスし、各コースが以前のように表示されるようにしたいと思っています。 –