爲了實現你想要的,我建議使用會話。請記住,這些不會被永久保存,所以如果你正在尋找一個持久的解決方案,你應該使用一個數據庫來存儲它們英寸
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
以某種方式是的,我需要它,以便用戶可以添加一個課程,按提交,它會顯示,然後沖洗並重復每個課程顯示在前面,以某種方式,用戶將使陣列成長 –