具有多个输入字段和一个提交表单的Foreach循环


Foreach loop with multiple input fields and one submit form

我有一个问题与X输入字段(动态)提交。每当我按下提交按钮,它就像是在刷新我的页面。我实在说不出我错在哪里了。

我希望有人能指出这个问题。
require_once('dbconnection.php');

$sql = "SELECT * FROM {$value} WHERE employeeNumber = {$employeeNumber}";
$statement = $db->prepare($sql);
$statement->execute();
$department = $statement->fetchAll();
$mySql = "SELECT * FROM {$value}cloth";
$myStatement = $db->prepare($mySql);
$myStatement->execute();
$myDepartment = $myStatement->fetchAll();
//var_dump($myDepartment);

echo "<table>";
echo "<tr>";
echo "<th>Type</th>";
echo "<th>Antal</th>";
echo "<th>Størrelse</th>";
echo "</tr>";
if (!empty($department)) {
    $i = 0;
    foreach ($department as $infoRow) {
        foreach ($myDepartment as $row) {
            if ($i < 2) {
                $i++;
            } else {
                echo "<tr>";
                echo "<td>";
                echo $row['Type'];
                echo "</td>";
                echo "<td>";
                echo $infoRow['Navn'];
                echo "</tr>";
            }
        }
    }
} else {
    echo "<form method='POST'>";
    foreach ($myDepartment as $row) {
        echo "<tr>";
        echo "<td>";
        echo $row['Type'];
        echo "</td>";
        echo "<td>";
        echo "<input type='text' name='{$row['id']}' required>";
        echo "</td>";
        echo "<td>";
        echo "<input type='text' name='{$row['pieces']}' required>";
        echo "</tr>";
    }
    echo "<tr><td>";
    echo "<input type='submit' name='update' value='opdaterer'>";
    echo "</td></tr>";
    echo "</form>";
    if ($_POST) {
        echo "succes";
        if (isset($_POST[$row['id']])) {
            echo "succes too";
        }
    }
}
echo "</table>";

这没什么意义。你想让提交按钮做什么?

提交按钮会将页面重定向到目标所在的位置。当您将其留空时,它将恢复到默认目标,即当前页面。

如果您希望提交按钮POST到另一个页面,您需要指定动作属性:<form method="POST" action="destination.php">

否则,将您的<input type = "submit">更改为简单的<button>将防止刷新页面,但也删除了在第一个地方有一个表单的点

我不明白你说的"每当我按下提交按钮时,它就像刷新我的页面"是什么意思(当你提交一个没有动作属性的表单时,页面当然会重新加载)

在任何情况下,第一个错误,我可以看到阅读你的代码是,你把一个形式在<tr>,这是不允许的。您可以将整个表放在表单中,也可以将整个表单放在<td>中,而其他所有组合都是非法的。