2013-04-06 60 views
0

我正在處理一些插件,它處理一些更高級的站點成員搜索和查看站點成員的高級搜索(cpublicusers.dsp_advancedsearch.cfm)我發現它的分頁方式是它將搜索表單設置爲會話。我試圖做使用此代碼如下:Mura CMS Plugin SESSION

<cfif NOT structKeyExists(SESSION,'reportForm')> 

<cfset SESSION.reportForm = FORM /> 

<cfset sessionisset = true /> 

<cfelse> 
<cfset sessionisset = false /> 

的sessionisset變量只是我的測試。 當我嘗試導航到分頁時,我發現session.reportForm變量正在被清除。任何人都可以解釋爲什麼會這樣。

回答

1

FORM是在每個頁面上重新初始化的系統結構。結構被「通過引用」傳遞,這意味着你只是存儲一個指向FORM的指針。所以當FORM重新初始化時 - 你的會話變量也是如此。

修復方法是對結構進行深層複製,使其不受FORM變更的影響。 查看源代碼打印

<cfset SESSION.reportForm = duplicate(FORM) />