为什么提交表单时数组不更新
Why does array not update when submitting form
我目前正在尝试在用户输入数字并通过表单提交时更新关联数组。 asso 数组的所有值最初都设置为 0,但是当提交一个数字时,它需要在数组中找到第一个可用的 0 并将其更改为 1。它有点为第一个 post但是当我再次提交时,它不会更改第二个 0 并再次输出与以前相同的内容(只有第一个键得到 1)。
谁能解释一下这背后的逻辑是什么,因为我不明白为什么多个 post 不会更新数组,或者是为了在每个 post 上初始化数组从一开始又是全 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 . " ";
}
?>
非常欢迎任何帮助!
每次您向 PHP URL 发出 HTTP 请求时,您 运行 程序。
在程序开始时,您将一个新数组分配给 $parking
,所有值都设置为 0。
如果您希望数据在调用之间保留而不是重置,那么您需要将数据存储在程序之外的某个地方。
可能在 $_SESSION
中(请注意,在输出任何内容之前,必须在程序的 start 处调用 session_start();
)如果您希望每位访问者在访问期间或数据库中拥有自己的数据集(如果您希望数据保留更长时间或在用户之间共享)。
然后您需要从存储中提取数据,而不是每次都从您预定义的数组中重新初始化它。
我目前正在尝试在用户输入数字并通过表单提交时更新关联数组。 asso 数组的所有值最初都设置为 0,但是当提交一个数字时,它需要在数组中找到第一个可用的 0 并将其更改为 1。它有点为第一个 post但是当我再次提交时,它不会更改第二个 0 并再次输出与以前相同的内容(只有第一个键得到 1)。
谁能解释一下这背后的逻辑是什么,因为我不明白为什么多个 post 不会更新数组,或者是为了在每个 post 上初始化数组从一开始又是全 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 . " ";
}
?>
非常欢迎任何帮助!
每次您向 PHP URL 发出 HTTP 请求时,您 运行 程序。
在程序开始时,您将一个新数组分配给 $parking
,所有值都设置为 0。
如果您希望数据在调用之间保留而不是重置,那么您需要将数据存储在程序之外的某个地方。
可能在 $_SESSION
中(请注意,在输出任何内容之前,必须在程序的 start 处调用 session_start();
)如果您希望每位访问者在访问期间或数据库中拥有自己的数据集(如果您希望数据保留更长时间或在用户之间共享)。
然后您需要从存储中提取数据,而不是每次都从您预定义的数组中重新初始化它。