繁体   English   中英

带有多个提交选项的HTML表单

[英]HTML form with multiple submit options

我正在尝试创建一个用于从MySQL表中删除项目的小型Web应用程序。 它只显示HTML表格中的项目,并为每个项目显示一个按钮[delete]

item_1 [delete]
item_2 [delete]
...
item_N [delete]

为此,我通过PHP动态生成表格为HTML表单。 这个表格显然有N [delete]按钮。 表单应使用POST方法传输数据。

对于删除,我想将相应项的ID (MySQL表中的主键)提交给执行的php skript。 所以我介绍了hidden字段(所有这些字段都有name='ID' ,用于存储相应项目的ID

但是,当按下任意[delete] ,似乎总是只提交最后一个ID (即最后一个ID隐藏字段的值)。

有没有办法只提交相应项目的ID字段而不使用多个表格? 或者只用一个提交按钮就可以从多个表单提交数据? 或者我应该选择任何完全不同的方式?

我想在一个单一形式中完成它的一点是,有一些“全局”参数不应放在每个项目旁边,而是整个表格只放置一次。

<input type="submit" name="delete[1]" value="delete">

if (isset($_POST['delete'])) $id=key($_POST['delete']);

它似乎总是提交最后一个ID

它提交了所有这些,但由于名称不以[]结尾,因此PHP会丢弃所有内容。

有没有办法只提交相应项目的ID字段而不使用多个表格?

不,至少没有一些不幸的JavaScript。 所有(非禁用)隐藏输入(带名称和值)都将成功。 您无法根据与单击的输入元素的接近程度进行限制。

如果我正确理解您的目标,您有两个主要选择。

  1. 每行放一个表单(在带有删除按钮的单元格中)
  2. 将id值编码到提交按钮的名称中

您可以删除隐藏的字段并将提交按钮命名为:

<input type="submit" name="delete[1]" />
<input type="submit" name="delete[2]" />
<input type="submit" name="delete[3]" />

接着

<?php

if (isset($_POST['delete'])) {
   $toDeleteId = key($_POST['delete']);
}

暂无
暂无

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

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