繁体   English   中英

使用一系列按钮时,确定单击了哪个“提交”按钮

[英]Determining which Submit button was clicked, when an array of buttons is used

我有一个脚本,该脚本生成包含大量行和列的表。 在行的每一端,都有一个“提交”按钮,其名称是运行脚本时生成的数组之一,类似于:delete_CN [0],delete_CN [1]等。

在处理POST表单时,我需要确定单击了哪个Submit按钮。 当前,当我看到print_r或dump_vars时,我看到以下内容: ["delete_CN"]=> array(1) { [0]=> string(6) "Delete" } ,它没有给出该数组的索引。按下的按钮。

我应该如何最好地做到这一点? 我需要找到被按下的提交按钮的数组索引,或者另一种方法来唯一地标识“提交”按钮的行,以处理数据。 原始格式是通过读取区域文件动态生成的,并且同一行上的元素都是数组。

帖子数据将始终包含所有按钮,但只有被单击的按钮才会有一个值。 这样,您可以通过检查按钮数组中的哪个值不为空来轻松确定单击了哪个按钮。 (该值将是按钮上的文本,因为该文本是在value属性中定义的)。

在HTML / PHP中,您可以将表格中的每一行设置为单独的表单,然后添加一个

<input type="hidden" name="which_clicked" value="delete_CN[0]">

然后寻找$ _POST ['which_clicked']

或者您可以使用jQuery并根据单击的提交按钮插入一个值。

请注意,也可以使用ENTER键提交表单。 万一发生这种情况,浏览器会像单击表单中的第一个按钮一样处理它。

显然,当焦点位于“提交”按钮上时按ENTER,将使用此当前焦点的按钮发送表单。

我要做的是,创建一个隐藏的输入类型数组,其中包含“唯一值”,以及我们分配给每个按钮的值。 例如输入类型=“隐藏”名称=“ txtID []” id =“ txtID []”值=“ 15618”,对于按钮输入type =“ submit” name =“ CityAdd15618” id =“ CityAdd15618” value =“ +”

然后在提交时,您只需要循环

$lTtl=count($_POST['txtID']);
for($lCtr1=0; $lCtr1<$lTtl; $lCtr1++)
{
    if (isset($_POST['CityAdd' . $_POST['txtID'][$lCtr1]]))
        break;
}
echo "ttl:" . $lCtr1 . "<br>\n";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM