0

我正在开发一个插件来处理站点成员的一些更高级搜索,并查看站点成员的高级搜索 (cpublicusers.dsp_advancedsearch.cfm) 我发现它进行分页的方式是将搜索表单设置为会议。我尝试使用此代码执行以下操作:

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

 <cfset SESSION.reportForm = FORM />

 <cfset sessionisset = true />

 <cfelse>
 <cfset sessionisset = false />

sessionisset 变量仅用于我的测试。当我尝试导航到分页时,我发现 session.reportForm 变量正在被清除。谁能解释为什么会这样。

4

1 回答 1

1

FORM 是在每一页上重新初始化的系统结构。结构是“通过引用”传递的,这意味着您只是存储了一个指向 FORM 的指针。因此,当重新初始化 FORM 时 - 您的会话变量也是如此。

解决方法是制作结构的深层副本,使其不受 FORM 更改的影响。查看源打印?

<cfset SESSION.reportForm = duplicate(FORM) />
于 2013-04-07T13:26:35.440 回答