簡體   English   中英

無法將新字符串放入數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM