2010-02-24 31 views
0

我有一個用php生成的html表。一個很好的方法來檢查哪一行被改變(html/jquery/php)

此列表可以包含超過20000條記錄的記錄,因此我在該列表中添加了一個分頁。 在此列表中,您可以修改您喜歡的行,當您點擊保存時,它會將更改保存在臨時表中,並且只有在您應用更改後纔會將實際更改應用到主表中。在您應用更改之前,它會在列表中顯示帶有指示符的已更改行。

現在所有這些都可以工作,但是現在當您只更改顯示的50行中的1行時,它將50行保存在臨時表中。這給了我一個關於所有50條記錄的指標(不是我想要的)。

我的問題是:在保存到臨時表之前,知道哪一行更改的好方法是什麼?

+0

臨時表中的「已更改」標誌字段不是一個選項嗎? – 2010-02-24 14:58:03

+0

你如何改變行?什麼時候更新臨時表? – 2010-02-24 14:58:09

回答

0

好的我找到了解決我自己問題的方案。

在jQuery的幫助下,我設法實現了我的解決方案。

我在我的表格中添加了一個class =「changed」的隱藏文本字段。

我在每個字段上都有4個可編輯的字段(2個日期字段和2個複選框)我添加了一個jquery點擊函數,它基於類名,這對我列表中的所有字段都是相同的行)。

jQuery的例子複選框:

$('input.activated').click(function(){ 

    $(this).parents('tr').find('input.changed').attr('value', 'changed'); 

}); 

所以,當我現在點擊保存修改 - >我的PHP代碼檢查是否隱藏字段等於「改爲」以更改的行保存在我的臨時表。

這在我看來是一個很好的解決方案。

0

您可以在JavaScript中使用事件委託。您在父級別附加事件偵聽器,而不是在單個子級上,然後偵聽事件並檢查目標。

每個事件對象都有一個目標屬性。目標是觸發事件的對象。

你可以看到jQuery的文檔網站上的一個很好的例子:http://docs.jquery.com/Events/jQuery.Event#event.target

事件代表團對大量數據的需要事件處理特別有用。 閱讀更多關於代表團活動的信息:http://icant.co.uk/sandbox/eventdelegation/

+0

jQuery 1.4.2剛剛爲此提供了一個簡單的幫手: http://api.jquery.com/delegate/ – 2010-02-25 10:30:01

相關問題