【问题标题】:Why does this multiple row table submit by row? Is this correct?为什么这个多行表按行提交?它是否正确?
【发布时间】:2016-11-17 12:47:23
【问题描述】:

这是在表单中找到的表格代码片段。行是“相同的”。输入的名称都相同。提交按钮的名称都相同。每行包含<input> 元素,每一行都有一个提交按钮。

<tr>
   <td><input type='text' name='first' value='mark'></td>
   <td><td><button type='submit'name='editbutton' value='1'>Edit</button></td>
</tr>
<tr>
   <td><input type='text' name='first' value='luke'></td>
   <td><td><button type='submit'name='editbutton' value='2'>Edit</button></td>
</tr>
<tr>
   <td><input type='text' name='first' value='john'></td>
   <td><td><button type='submit'name='editbutton' value='3'>Edit</button></td>
</tr>

当按下按钮时,$_POST 包含与提交按钮在同一行中的数据。它适用于ie和ff。这是应该如何工作的吗?我过去使用带有 id 的 javascript/jQuery 来收集特定的数据行,但如果这个确实有效的提交构造是正确的,我会改用它。

谢谢。

【问题讨论】:

  • 那么你想要的是从每一行获取数据,就像你的数据数组一样,对吧?
  • 没有。我只想要一行的数据。它正在“正确”运行。我只想知道我是不是走运了。如上所述,过去我不得不使用 javascript 和 ID 来提取行。

标签: php html


【解决方案1】:

another question on SO 中所述(相对,因为它大约是hidden 输入):

浏览器没问题。 但是,应用程序库解析它的方式可能会有所不同
程序应该将同名的项目组合在一起。虽然 HTML 规范没有明确说明这一点,但在 the documentation on checkboxes 中隐含地说明了这一点。

所以这只是纯属运气:使用另一种服务器端技术可能会得到另一个结果。

有关您可以获得的更多信息,请在另一个问题上查看this answer。它有很多有用的信息和规格。


此外,如果你想获取name="first" 的所有值,最好将它们命名为name="first[]"

然后您将在服务器上拥有$_POST["first"] 作为一个可以循环遍历的数组。

【讨论】:

  • 怀疑。谢谢。
猜你喜欢
  • 2012-08-18
  • 1970-01-01
  • 2012-12-05
  • 2014-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多