2014-11-01 55 views
-1

我得到了一个表,每行有一列数据库记录。每个列都是可编辑的,并且可以在记录上执行多个操作。这在HTML中很容易实现,只是将每行以单独的形式包装起来。在单行或多行表上执行操作

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

.

是什么让这些单排操作使用HTML(同时最好不要提交所有其他行)和多行的行动在同一个表(最好不用JS)的最好方法?

+0

请注明我是如何改善问题,如果downvoting。我试图展示它尽可能好。 – Zulakis 2014-11-01 23:38:11

+0

开始于_“到jsfiddle.net的链接必须附带代码。”_ – Nit 2014-11-01 23:39:16

+1

所有相关的代码都应该包含在问题本身中。 – Nit 2014-11-01 23:42:06

回答

0

最好的办法是只使用一种形式,不是为每个记录使用数组,其中第一个坐标是从数据库中的项目编号,如下:

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

以后你可以发布形式,或将其序列化并使用ajax。如果您不想使用复选框,但是要实时更改值,请将其移除(复选框),并使用旧值插入隐藏字段(以便您可以进行比较)。为了检测其提交按钮已被使用,看看here

0

如何:

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