我目前正在嘗試在用戶輸入數字并通過表單提交時更新關聯陣列。asso 陣列的所有值最初都設定為 0,但是當提交一個數字時,它需要在陣列中找到第一個可用的 0 并將其更改為 1。對于第一篇文章,它有點這樣做但是當我提交時再次它不會更改第二個 0 并再次輸出與以前相同的內容(只有第一個鍵得到 1)。
有人可以解釋這背后的邏輯是什么,因為我不明白為什么多個帖子不會更新陣列,或者是因為陣列從一開始就在每個帖子上被初始化為全 0 嗎?如果是這種情況,你怎么能解決這個問題?在兩個頁面之間使用 $_Session 變數會是一個想法嗎?
<!DOCTYPE html>
<html>
<head>
<title>
Parking interface
</title>
</head>
<body>
<h1>test!</h1>
<h3>test </h3>
<form action="test1.php" method="POST">
<input type="number" name="test" id="test">
<label for="test">number</label><br>
<br>
<input type="submit" value="test">
</form>
</body>
</html>
<?php
session_start();
$parking = array(
"spot1" => 0, "spot2" => 0, "spot3" => 0, "spot4" => 0, "spot5" => 0,
"spot6" => 0, "spot7" => 0, "spot8" => 0, "spot9" => 0, "spot10" => 0
);
if (!isset($_POST["test"])) {
//echo "choose an option to continue.";
return false;
} else {
foreach ($parking as $key => $value) {
if ($value === 0) {
$parking[$key] = 1;
break;
}
}
}
foreach ($parking as $key => $value) {
echo $key . " " . $value . " ";
}
?>
任何幫助都非常受歡迎!
uj5u.com熱心網友回復:
每次向 PHP URL 發出 HTTP 請求時,都會運行該程式。
在程式開始時,您分配一個新陣列,$parking并將所有值設定為 0。
如果您希望資料在呼叫之間保留而不是重置,那么您需要將資料存盤在程式之外的某個位置。
如果您希望每個訪問者在訪問期間或在$_SESSION資料庫中擁有自己的資料集(如果session_start();您希望資料持久存在或在用戶之間共享)。
然后,您需要從存盤中提取資料,而不是每次都從預定義的陣列中重新初始化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/440132.html
