我認爲最簡單的答案可能是在用戶提交更新時在新表中插入數據。
<cfif structKeyExists(form, "submit")>
<cfquery name="abc" datasource="xyz">
INSERT INTO Table_abc VALUES (
<cfqueryparam cfsqltype="cf_sql_integer" value="#form.id#">
,<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.acct#">
,<cfqueryparam cfsqltype="cf_sql_varchar" value="#form.desc#">
,<cfqueryparam cfsqltype="cf_sql_integer" value="#form.PRD#">
,<cfqueryparam cfsqltype="cf_sql_integer" value="#form.PRM#">
)
</cfquery>
<cfquery name="xyz" datasource="xyz">
UPDATE Table_xyz SET
acct = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.acct#">
,Description = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.desc#">
,PRD = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.PRD#">
,PRM = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.PRM#">
WHERE id = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.id#">
</cfquery>
</cfif>
如果由於某種原因,這是不可能做到這一點我會嘗試添加一些像modified_flag和/或modified_timestamp領域現有的表,所以你可以標記的記錄作爲修改,當他們進行了修改。
<cfif structKeyExists(form, "submit")>
<cfquery name="abc" datasource="xyz">
UPDATE Table_xyz SET
acct = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.acct#">
,Description = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.desc#">
,PRD = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.PRD#">
,PRM = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.PRM#">
,modified_flag = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.modified_flag#">
,modified_timestamp = <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.modified_timestamp#">
WHERE id = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.id#">
</cfquery>
</cfif>
<cfquery name="xyz" datasource="xyz">
Select * from Table_xyz
</cfquery>
<table id="tbl" cellpadding="1" border="1px" style="width:100px">
<tr bgcolor="##3333CC">
<td width="60"><font size=-1 color="White">Account</font></td>
<td width="250"><font size=-1 color="White">Description</font></td>
<td width="150"><font size=-1 color="White">PRD</font></td>
<td width="200"><font size=-1 color="White">$$/Month</font></td>
</tr>
<cfoutput query="xyz">
<form name="ABC" action="#CGI.SCRIPT_NAME#" method="post">
<input type="hidden" name="id" value="#id#">
<input type="hidden" name="modified_flag" value="y">
<input type="hidden" name="modified_timestamp" value="#DateFormat(now(), "mm/dd/yy hh:mm:ss")#">
<tr>
<td><input type="text" name="acct" value="#acct#"></td>
<td><input type="text" name="desc" value="#Description#"></td>
<td><input type="text" name="PRD" value="#PRD#"></td>
<td><input type="text" name="PRM" value="#PRM#"></td>
<td><input type="submit" name="submit" value="submit"></td>
</tr>
</form>
</cfoutput>
</table>
我對你的表單做了一些小的修改。最值得注意的是,我在輸出循環中拉出了表單標籤,以便在用戶單擊提交時單獨提交每條記錄,併爲每條記錄添加一個「id」字段,以便您可靠地確定用戶正在更新哪條記錄。另外,我將提交按鈕移動到表格中,以便它們顯示在它們的功能旁邊。
將記錄複製到第二張表格後,您可以重置modified_flag和/或modified_timestamp字段,以便確定是否再次編輯該記錄。
...我們需要更多的信息。你怎麼知道哪條記錄被修改?你的意思是當一個用戶修改一個文本框? –
@Matt - 如果用戶修改任何結果集的值並提交頁面...我們需要識別修改後的值並插入到表格中..謝謝! – TGR