44, "Rolling Thunder" => -6ren">
gpt4 book ai didi

php - 如何从使用 foreach 循环创建的表单中检索 _POST 数据?

转载 作者:搜寻专家 更新时间:2023-10-31 20:57:28 25 4
gpt4 key购买 nike

我有一个包含 20 个名称的关联数组,格式如下:

$operationCodeName = array(
"Overlord" => 44,
"Rolling Thunder" => 68,
"Desert Storm" => 91,
"Phantom Fury" => 04,
...);

...并使用以下 foreach 循环生成一个表(嵌套在一个表单中),该表显示每个名称和一个整数年份:

foreach($operationCodeName as $operation => $year) {
echo "<tr>
<td>" . $operation . "</td>
<td align='center'>" . $year . "</td>";
echo "<td><input name='comment" . $operation . "' size='50' type='text' placeholder='Comment here'></td>
</tr>";
}

我通过将“评论”一词与 $operation 连接起来来命名变量文本输入的名称属性中的变量。

这部分工作正常,但如果有更聪明的方法来做到这一点,我会洗耳恭听!

当用户单击“提交”按钮时,我需要将这些评论显示在摘要页面上。该表应显示相同的 $operation$year数组元素就像在第一页上一样,但随后显示用户在上一页中的评论。

我尝试使用两部分解决方案来解决问题:

首先,我的想法是使用之前的关联数组来创建每个级联变量,用它来调用_POST方法:

foreach($operationCodeName as $key => $value){
${"comment" . $key} = $_POST[${"comment" . $key}];
}

...然后通过回显串联变量来遍历注释列中的每个变量,就像我在上一页的第三列中设置它们一样:

foreach($operationCodeName as $operation => $year) {
echo "<tr>
<td>" . $operation . "</td>
<td align='center'>" . $year . "</td>";
echo "<td>" . ${"comment" . $operation} . "</td>
</tr>";
}

当我运行这段代码时,该表正确显示前两列,但生成空的 <td></td>第三列的标签。 var_dump(_$POST);显示:

array(21) { ["commentOverlord"]=> string(9) "Comment 1" ...

“评论 1”是在上一页中输入的评论,所以数据在这里,我只是没有正确调用它以在表格中显示......这实际上是令人鼓舞的!

我假设我没有正确声明变量,但我不确定我的错误传达发生在哪里。

如何正确地从第一页检索评论,并将它们显示在这个动态生成的表格的第三列中?

<我>感谢您的任何和所有建议!虽然我已经使用 Java 编程大约一年,但我只使用 PHP 大约 2 周。也就是说,请原谅我的任何菜鸟错误!

最佳答案

在上面的代码中,您尝试为每个评论创建动态变量。这不是创建动态变量的方式。您已经拥有数组形式的 POST 请求中的数据,因此您可以通过在与 operationCode 编号连接的表单评论中创建的键访问每个评论。试试这个!

foreach($operationCodeName as $operation => $year) {
// replace space in operation key with _
$operation = preg_replace('/\s+/', '_', $operation);
$commentKey = "comment" . $operation;
$comment = $_POST[$commentKey];
echo "<tr>
<td>" . $operation . "</td>
<td align='center'>" . $year . "</td>";
echo "<td>" . $comment . "</td>
</tr>";
}

关于php - 如何从使用 foreach 循环创建的表单中检索 _POST 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com