我有一个用PHP生成的html表。
此列表可以包含超过20000条记录的记录,因此我在此列表中添加了分页。 在此列表中,您可以修改您喜欢的行,当您点击保存时,它会将更改保存在临时表中,并且只有在您点击应用更改后,才会在主表中应用实际更改。在您点击应用更改之前,它会在列表中显示带有指示符的已更改行。
现在这一切都有效,但是目前当你只更改显示的50行中的1行时,它会在临时表中保存50行。这给了我所有50条记录的指标(不是我想要的)。
我的问题是:在将此行保存到临时表之前,知道更改哪一行的好方法是什么?
答案 0 :(得分:0)
您可以在JavaScript中使用事件委派。您在父级别附加事件侦听器,而不是在单个子级上,然后侦听事件并检查目标。
每个Event对象都有一个target属性。目标是触发事件的对象。
您可以在jQuery文档网站上看到一个很好的示例:http://docs.jquery.com/Events/jQuery.Event#event.target
事件委派对需要事件处理程序的大量数据特别有用。 详细了解事件委派的内容:http://icant.co.uk/sandbox/eventdelegation/
答案 1 :(得分:0)
好的,我找到了解决自己问题的方法。
在jquery的帮助下,我设法实现了我的解决方案。
我在表格中添加了一个隐藏文本字段,其中class =“changed”。
我在每个字段上有4个可编辑字段(2个日期字段和2个复选框)我根据类名对我列表中的所有字段添加了一个jquery click函数(每行有4个不同的类名) )。
jquery示例复选框:
$('input.activated').click(function(){
$(this).parents('tr').find('input.changed').attr('value', 'changed');
});
所以当我现在点击保存修改 - >我的php代码检查隐藏字段是否等于“已更改”以将更改的行保存在临时表中。
在我看来,这是一个很好的解决方案。