PHP/HTML:带有提交按钮的 While 循环

PHP/HTML: While loop with submit-buttons

我有一个 select 框,我可以在其中选择项目 ID,然后使用提交按钮将其传递到下一个表单。现在看起来像这样:

这是我的代码:

 <form name="form2" action="formular3.php" method="post">

 <p><strong>Choose Project:</strong></p>
 <select name = "project_id">

 <?php
 while ($row = mysqli_fetch_array($result)) {
     echo "<option value =" . $row['project_id'] . "> Project_ID: " . $row['project_id'] . " - (" . $row['name'] . ")</option>";
 }
 ?>

 </select>

 <input type="submit" value="Send" />

 </form>

现在我想要一个列表,其中每一行都有一个提交按钮。它应该是这样的:

在循环中使用提交按钮,

 <p><strong>Choose Project:</strong></p>
 <select name = "project_id">

 <?php
 while ($row = mysqli_fetch_array($result)) {
     echo "<option value =" . $row['project_id'] . "> <input type='submit' value='Send' />Project_ID: " . $row['project_id'] . " - (" . $row['name'] . ")</option>";
 }
 ?>

 </select>



 </form>

您需要停止发生当前提交事件并为提交按钮提供一个 ID,使用 jquery 点击提交您应该 post 一个特定的表单。

喜欢的提交将被点击,你将运行这个脚本。

$(document).on('click', '#submit', function () {
    $(this).closest("form").submit();
});

如果您每个表单只发送一个选项,请完全删除 select 标签。

更好的方法(注意 mysqli_fetch_assoc() 而不是 mysqli_fecth_array():

echo "<form name=\"form2\" action=\"formular3.php\" method=\"post\">";
    while($row=mysqli_fetch_assoc($result)){
        echo "Project_ID: {$row['project_id']} - ({$row['name']}) ";
        echo "<button name=\"project_id\" value=\"{$row['project_id']}\">Send</button>";
    }
echo "</form>";

这将提交单击按钮中的值,而无需将那么多表单块写入 html。您只需要调整 <br>、table 单元格等按钮的实际显示


我以前的方法可行,但不是 DRY:

while($row=mysqli_fetch_array($result)){
    echo "<form name=\"form2\" action=\"formular3.php\" method=\"post\">";
        echo "<input type=\"hidden\" name=\"project_id\" value=\"{$row['project_id']}\">";
        echo "Project_ID: {$row['project_id']} - ({$row['name']}) ";
        echo "<input type=\"submit\" value=\"Send\" />";
    echo "</form>";
}