Javascript 如何在维护连续元素ID的同时添加和删除表行?
我正在开发我一直在开发的CMS的后端 我有一个HTML表,我希望用户能够添加和删除其中的行。每行将包含各种用户输入(文本框、复选框..)。然后,当用户完成后,它将保存在数据库中 我想知道最好的方法是什么 我猜桌子应该是这样的:Javascript 如何在维护连续元素ID的同时添加和删除表行?,javascript,html,dom,html-table,Javascript,Html,Dom,Html Table,我正在开发我一直在开发的CMS的后端 我有一个HTML表,我希望用户能够添加和删除其中的行。每行将包含各种用户输入(文本框、复选框..)。然后,当用户完成后,它将保存在数据库中 我想知道最好的方法是什么 我猜桌子应该是这样的: <table> <tr> <td><input name="name_1" type="text" /></td> <td><input name="address_1" type="text"
<table>
<tr>
<td><input name="name_1" type="text" /></td>
<td><input name="address_1" type="text" /></td>
</tr>
<tr>
<td><input name="name_2" type="text" /></td>
<td><input name="address_2" type="text" /></td>
</tr>
<tr>
<td><input name="name_3" type="text" /></td>
<td><input name="address_3" type="text" /></td>
</tr>
</table>
我在想象我会有一个噩梦,给每行中的每个元素一个id,如果用户删除第2行会发生什么。。。之后的所有id都需要重新排序
如何最好地使用JavaScript添加和删除行以及维护顺序id?为每个
指定一个唯一的id=…
属性,以便您可以唯一地标识行。然后向表中添加一列,该列包含每行的顺序ID。当由于行已更改而需要重新排序时,请更新列,但不要更新ID
属性。为每行
指定一个唯一的ID=…
属性,以便可以唯一地标识行。然后向表中添加一列,该列包含每行的顺序ID。当由于行已更改而需要重新排序时,请更新列,但不要更新ID
属性。您应该改用name=“address[]”
等。这样,当您发布它时,服务器上的处理文件将收到一个数组,该数组包含HTML代码中相应的
出现顺序中的所有值
(我知道PHP会自动执行此操作:将以[]
结尾的输入name
转换为数组。不知道其他语言)您应该使用name=“address[]”
等。这样,当您发布它时,服务器上的处理文件将收到一个数组,该数组包含HTML代码中相应的
出现顺序中的所有值
(我知道PHP会自动执行此操作:将以[]
结尾的输入name
s转换为数组。不知道其他语言)您不想这样做。
您要做的是实际生成一个唯一的ID,一个在页面上完全唯一的ID,不要尝试在数据库中维护该ID
然后,您应该做的是,在提交页面时,获取这些提交的ID,然后使用auto_increment让数据库对ID进行asign。如果需要复合键,则可以使用复合键
然后,当您再次加载表单时,例如为了进行编辑,您需要使用数据库中的新ID
我使用AJAX实现了类似的功能。我为我的每个表单元素使用了random.uniqueID('prefix_'),然后在提交时,我将auto_增量分配给prefix_整数,并返回一个JSON对象。然后,我可以在对象上循环,并确保我的表单使用正确的ID是最新的
这样解释应该很简单 你不想这样做。
您要做的是实际生成一个唯一的ID,一个在页面上完全唯一的ID,不要尝试在数据库中维护该ID
然后,您应该做的是,在提交页面时,获取这些提交的ID,然后使用auto_increment让数据库对ID进行asign。如果需要复合键,则可以使用复合键
然后,当您再次加载表单时,例如为了进行编辑,您需要使用数据库中的新ID
我使用AJAX实现了类似的功能。我为我的每个表单元素使用了random.uniqueID('prefix_'),然后在提交时,我将auto_增量分配给prefix_整数,并返回一个JSON对象。然后,我可以在对象上循环,并确保我的表单使用正确的ID是最新的
这样解释应该很简单 为什么ID需要按顺序排列?您是否使用了jQuery之类的JavaScript库,它可以返回行列表,如果需要访问第x行,您可以从中访问该行
我想如果你试图在中间删除(或添加)行时迭代地更新IDS,就会遇到同步问题。
你可能会考虑DouweM的建议,如果你使用的是服务器端语言,可以很容易地用[]中的ID来构建数组。另一个选项是为每个ID分配GUID,或者从备份数据库中的相关行分配它们的主键。
为什么ID需要顺序?您是否使用了jQuery之类的JavaScript库,它可以返回行列表,如果需要访问第x行,您可以从中访问该行我想如果你试图在中间删除(或添加)行时迭代地更新IDS,就会遇到同步问题。
你可能会考虑DouweM的建议,如果你使用的是服务器端语言,可以很容易地用[]中的ID来构建数组。另一个选项是为每个ID分配GUID,或者从备份数据库中的相关行分配它们的主键