【问题标题】:Performing actions on single or multiple rows of table对表的单行或多行执行操作
【发布时间】:2014-12-28 22:31:08
【问题描述】:

我得到了一个表,每行中都有一些数据库记录的列。这些列中的每一列都是可编辑的,并且可以对记录执行多个操作。这在 HTML 中很容易做到,只需将每一行包装在一个单独的表单中。

但是,也应该可以对复选框选中的多行执行操作。

使用 HTML(最好不使用 js)在同一个表中允许这些单行操作(最好不要提交所有其他行)和多行操作的最佳方法是什么?

【问题讨论】:

  • 请说明如果投反对票,我该如何改进这个问题。我试图尽可能地展示它。
  • 开头"指向jsfiddle.net的链接必须附有代码。"
  • 所有相关代码都应该始终包含在问题本身中。

标签: html


【解决方案1】:

怎么样:

  • 拥有一个包裹整个表格的 <form> 元素。
  • 当按下任何操作按钮时,使用 JavaScript 防止默认操作并动态构造 FormData(基于按下的按钮)并通过 Ajax 提交。
  • 回退(即如果 JavaScript 执行失败)提交整个表。在服务器端,检测这种情况并提取相关数据,然后正常进行(如通过 Ajax 提交)。

【讨论】:

    【解决方案2】:

    最好的方法是只使用一种形式,而不是为每条记录使用一个数组,其中第一个坐标是数据库中的项目 ID,如下所示:

    <input type="checkbox" name="id[2]" />
    <input type="text" name="column1[2]" />
    <input type="text" name="column2[2]" />
    

    稍后您可以发布表单,或将其序列化并使用 ajax。如果您不想使用复选框,而是要即时更改值,则删除它们(复选框)并插入带有旧值的隐藏字段(以便您进行比较)。为了检测哪个提交按钮被使用了,看看here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多