我的代码的作用:
直到我完成后我才意识到(我正在开展我的第一个大项目),用户无法编辑他们的个别项目!!!
我认为我应该做什么:
的jsfiddle http://jsfiddle.net/SteveRobertson/XHuVS/1/ JSFIDDLE
我的问题:我的方法是正确的方法吗?我只是问,因为我不认为它,但感觉好像我已经把自己编入角落。我不知道该怎么做。如果不。以可以提交给服务器的方式动态编辑行的正确方法是什么?当我为模板调用此函数时,我假设我必须添加某种计数器以给每一行一个唯一的ID,或者可以用另一种方式识别该行?
function template(row, quoteItem) {
row.find('.item_num').text(quoteItem.number);
row.find('.item_desc').text(quoteItem.description);
row.find('.item_price').text(quoteItem.price);
return row;
}
虽然我不知道如何准确地完成我的方法所需的大部分方法,但我只是在正确的方向上寻求一点。我知道这是一个冗长的问题以及冗长的代码。感谢您抽出宝贵时间阅读本文以及任何建议或意见。谢谢。
答案 0 :(得分:1)
我同意您的计划方法,在提交时生成表单数据。这样可以省去保持隐藏字段更新的麻烦。
隐藏字段:
您当前的代码会生成具有相同ID testid
的元素。您可以删除ID,因为它们不会用于任何内容。如果确实需要ID,请确保它们是唯一的。
生成的元素的命名并不表示它们之间存在任何关系,我建议使用如下命名方案:
items[0].name
items[0].description
items[0].price
items[1].name
items[1].description
items[1].price
...
您还可以考虑通过AJAX提交表单。在这种情况下,您可以在提交时构造表单数据对象。它可能看起来像:
[
{name: 'Item 1', description: 'first item', price: '123'},
{name: 'Item 2', description: 'second item', price: '234'},
...
]
这是一个question,它展示了如何使用PHP在服务器端处理这个问题。
行生成:
您可以为正在生成的行添加唯一ID,但前提是您需要单独处理行。使用计数器生成附加到字符串的值将用于生成唯一ID。
编辑:
edit
选项的一个解决方案是绑定表格上的click
事件,并使用on函数检查edit
链接。
$('#quote').on('click', '.edit-link', function (e) {
e.preventDefault();
//$(this) - edit link
//$(this).closest('tr') - parent table row
//$(this).closest('tr').find('.item_num') - span containing number of items
//$(this).closest('tr').find('.item_num').text() - number of items
...
});
表格行
<tr>
<td><span class="item_num">1</span></td>
<td><span class="item_desc">rt</span></td>
<td><span class="item_price">asd</span></td>
<td><a href="#" class="edit-link">Edit</a></td>
</tr>
存储父级(TR)的引用(ID或对象)以在编辑完成后更新值。
这不是一个全面的解决方案,但我希望它能为您提供一些线索。