PHP如何通过仅含按钮的表单传递对应标签的数值?
可行,两种实现方案如下
你的需求完全可以实现,核心是要给每个按钮关联对应的数字标识,让服务器能识别出被点击的按钮对应哪个数字。以下是两种简单的实现方式:
方案一:每个条目使用独立表单
给每个数字和按钮单独创建一个表单,搭配隐藏输入框传递对应数字,点击按钮时只会提交当前表单的内容:
修改后的index.php
<html> <?php for ($index = 1; $index <= 10; $index++) { echo "<br>"; echo "<form action=\"./process.php\" method=\"post\">"; echo "<label>$index</label>"; // 隐藏输入框存储对应数字 echo "<input type=\"hidden\" name=\"selected_num\" value=\"$index\">"; echo "<input type=\"submit\" value=\"Submit\">"; echo "</form>"; echo "<br>"; } ?> </html>
process.php获取值
<?php // 检查是否接收到提交的数字 if (isset($_POST['selected_num'])) { echo "你点击的是数字:" . $_POST['selected_num']; } ?>
方案二:同一表单内区分按钮标识
在同一个大表单中,给每个提交按钮设置唯一的name属性,服务器通过判断哪个name存在来确定对应的数字:
修改后的index.php
<html> <form action="./process.php" method="post"> <?php for ($index = 1; $index <= 10; $index++) { echo "<br>"; echo "<label>$index</label>"; // 给每个按钮设置带数字的唯一name echo "<input type=\"submit\" name=\"submit_$index\" value=\"Submit\">"; echo "<br>"; } ?> </form> </html>
process.php获取值
<?php $selected_num = null; // 遍历判断哪个按钮被提交 for ($i = 1; $i <= 10; $i++) { if (isset($_POST["submit_$i"])) { $selected_num = $i; break; } } if ($selected_num !== null) { echo "你点击的是数字:" . $selected_num; } ?>
原来的代码无法实现需求的原因是:所有提交按钮没有唯一标识,服务器无法区分是哪个按钮被触发提交,因此无法关联到对应的label数字。
内容的提问来源于stack exchange,提问作者RishV
相关产品推荐
相关产品推荐

