所以我有一个表单可以根据用户添加到页面的内容来增加和减少。为了能够处理未知帖子,我设置了一系列 foreach 循环,遍历表中的每个部分并为每个部分解开数组。
表单是一系列表格。每个表代表一个类别,每一行代表类别的不同部分。每行有 7 个部分。该脚本遍历并获取将每个列片段插入数据库所需的部分。
在我的个人家庭服务器上,代码没有返回任何错误并相应地更新了数据库。尽管在我的付费主机上出现错误。错误出现在第一个 foreach 之后。它来自:
foreach($tablecontent as $key => $values)
这是错误: 警告:为/home/sariep5/public_html/werchris.com/circuitcheck/submit.php 第 14 行中的 foreach() 提供的参数无效
我的代码如下:
<td><input type="text" maxlength="3" name="esd[8][eng]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][q2]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][loa]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][wire]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][verify]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][assy]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][q4]" value=""></td>
那是表单的 HTML 部分。像这样的部分只是用名称的不同部分创建的。所以 esd 可以是任何其他类别,8 个增量,其他 7 个在每个部分中都是相同的。
foreach ($_POST as $table => $tablecontent) {
foreach($tablecontent as $key => $values) {
foreach($values as $row => $value) {
$value = strip_tags(htmlspecialchars($value));
$row = strip_tags(htmlspecialchars($row));
$key = strip_tags(htmlspecialchars($key));
mysql_query("UPDATE tablecontent SET ".$row." = '$value'
WHERE id='$key'");
}
}
}
谢谢!
最佳答案
这很简单 foreach($tablecontent as $key => $values)
错误意味着 $tablecontent
不是数组
Warning: Invalid argument supplied for foreach() in /home/sariep5/public_html/werchris.com/circuitcheck/submit.php on line 14
在那里尝试一个var_dump($tablecontent);
关于php - 使用 foreach 语句选择 $_POST 返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6472924/