当有很多提交按钮时,如何知道哪个提交按钮


How to know which submit button is when there are many submit buttons

while($row = mysqli_fetch_assoc($result))
{
    echo "<tr>";
    echo "<form action='./form_page.php' method='post'>";
    echo "<td style='width:9%'>" . $row['studentID']."</td>";
    echo "<td style='width:9%'><input type='submit' name='Prove' value='Approve' /></td>";
    echo "<td style='width:9%'><input type='submit' name='$count' value='Delete' /></td>";
    echo "</form>";
    echo "</tr>";
}

我想得到具体的student id,但是当我到达这里时,我不知道如何才能得到它。如果我为按钮名称输入$row['studentID'],我不能使用POST['varname']因为当我选择不同时名称会有所不同。

提交按钮由其名称标识。

例如,如果有 3 个forms,有 3 个submit按钮,分别名为 Accept1Accept2Accept3

当用户通过单击Accept1提交表单时,POST变量将被$_POST['Accept1']。同样$_POST['Accept2'],分别$_POST['Accept3']

您还可以打印 POST 变量以获得清晰的想法,即 print_r($_POST) .

如果我输入$row['学生ID']作为按钮名称,我不能使用POST['varname']

您可以遍历 $_POST 中的所有值,并查看其中是否有任何值与学生 ID 的模式匹配。

或者,您可以使用按钮元素(这将允许您显示文本和彼此不匹配的值(:

<button name="approve" 
        value="<?php echo htmlspecialchars($row['studentID'])>
        Approve
</button>

然后只是测试$_POST['approve'].

像这样尝试。

    while($row = mysqli_fetch_assoc($result))
    {
       echo "<tr><form action='./form_page.php' method='post'>";
       echo "<td style='width:9%'>" . $row['studentID']."</td>";
       echo "<input type='hidden' name='studentID' value='".$row['studentID']."'>";
       echo "<td style='width:9%'><input type='submit' name='Prove' value='Approve'>;
       echo "<td style='width:9%'><input type='submit' name='$count' value='Delete'>
       </td></form></tr>";
}

通过使用隐藏的输入类型,您将能够在提交发件人时获取学生 ID。希望这会有所帮助