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>";
}
我有一个 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>";
}