[英]cannot put new string into array
當用戶輸入內容時,我有一個表單,它將出現在屏幕上。 我將用戶鍵入的文本保留在名為$output
的變量中,然后嘗試將每個$output
放入名為$arrayText
的數組中,我的目標是讓用戶鍵入某些內容並單擊一個按鈕,然后出現用戶文本在屏幕上,當他第二次嘗試時,第一個文本仍然存在,而新文本將在下一行。 但是,它只能在第一次使用。 第二次用舊文本替換第二個文本,這是我的代碼
if (isset($_POST['putContents'])) {
$output = $_POST['contents'];
test();
}
function test()
{
static $arrayText = array();
global $output;
$arrayText[]= $output;
for($i = 0; $i < count($arrayText); $i++){
echo $arrayText[$i];
echo "<br>";
}
}
}
?>
謝謝你的任何幫助
通過第二次執行腳本,您的$ _POST將僅具有最后一次提交的值,在您的情況下,它將覆蓋您的數組。
如果要存儲當前過程之外的數據,則必須將日期存儲在$ _POST全局以外的其他位置。
我建議您為此使用會話,因為數據庫查詢肯定會超出您的需求。 采用:
session_name("admin");
session_start();
if(empty($_SESSION["yourOldText"])) $_SESSION["yourOldText"]=$_POST["userinput"];
如果您想訪問舊數據,則可以使用$_SESSION["yourOldText"]
每當用戶按下“提交”按鈕后,就不能將用戶輸入逐行“收集”到數組中。 這些行必須保留(存儲)在某個地方。 您可以按照建議將每一行作為記錄存儲在數據庫中或會話cookie中。 我可以通過將輸入的行存儲在表單內的隱藏輸入標記中來保持狀態:
<input type="hidden" name="line[0]" value="What the user typed in first" />
<input type="hidden" name="line[1]" value="The second line that was typed in" />
<input type="text" name="contents" value="" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.