最近做的系統需要實現操作日志的功能,主要記錄用戶的 增,刪,改的操作。自己想的方法笨點兒但能滿足需求,待日后有更好的解決方法了再來優化了,不多說先上效果圖。
一,效果圖
1, 日志列表
2, 日志詳細
二,設計思路
1, 頁面加載完成后,利用JS 記錄需要記錄的值到 對應的隱藏域中。
2, 頁面提交時利用JS 對表單內容進行比較,記錄改動過的項目,並保存到隱藏域中,供后台調用。
3, 用存儲過程對隱藏域中的值進行解析並保存到數據庫中
三,實現步驟
1, 頁面的上 控件的命名要有規則這樣 做是為了方便JS遍歷頁面上的控件
如
2,JS代碼

///頁面加載完后,遍歷頁面上需要記錄的項目,賦值給相應的隱藏域 $(document).ready(function () { //找到頁面中的文本框 並把文本框中的值 賦值給 相應的 隱藏域 var inpus = $("input[type='text']"); for (var i = 0; i < inpus.length; i++) { if ($("#HF" + inpus[i].id).length > 0) { $("#HF" + inpus[i].id).val(inpus[i].value); } } }); //表單提交時 比較表單提交前后 值的變化,並記錄下有改動的項目 存入 隱藏域中供后台調用 //隱藏域中保存的信息格式 為: 被改字段含義,原值,新值 每條記錄以 $分隔 function MyFormSubmit(btnID) { //比較文本框 var changeInputs = ""; var newInputs = $("input[type='text']"); for (var i = 0; i < newInputs.length; i++) { if ($("#HF" + newInputs[i].id).length > 0) { if ($.trim(newInputs[i].value) != $.trim($("#HF" + newInputs[i].id).val())) { changeInputs += $("#lb" + newInputs[i].id).text() + "," + $("#HF" + newInputs[i].id).val() + "," + $.trim(newInputs[i].value) + "$"; } } } //將改動過的表單內容記錄到隱藏域中 $("#HFChangeContents").val(changeInputs); //檢測表單內容是否改動過 if ($("#HFChangeContents").val() == "") { alert('無改動!'); } else { //提交表單 document.getElementById(btnID).click(); } });
到這里已經得到了需要記錄的表單改動項目,剩下數據處理就簡單了。
本文只提供個人的拙見,如有更好的實現方式,請不吝賜教。如需源碼請 戳 http://download.csdn.net/detail/sidabbs/4347781