我正在开发一个插件,它可以处理站点成员的一些更高级的搜索,在查看站点成员的高级搜索(cpublicusers.dsp_advancedsearch.cfm)时,我发现它进行分页的方式是将搜索表单设置为会话。我尝试使用此代码执行以下操作:
<cfif NOT structKeyExists(SESSION,'reportForm')>
<cfset SESSION.reportForm = FORM />
<cfset sessionisset = true />
<cfelse>
<cfset sessionisset = false />
sessionisset变量仅用于我的测试。当我尝试导航到分页时,我发现session.reportForm变量正在被清除。有谁能解释一下为什么会这样。
发布于 2013-04-07 21:26:35
表单是在每个页面上重新初始化的系统结构。结构是“通过引用”传递的,这意味着你只是在存储一个指向表单的指针。因此,当表单重新初始化时-会话变量也是如此。
修复方法是对结构进行深拷贝,这样它就不会受到表单更改的影响。是否查看源打印?
<cfset SESSION.reportForm = duplicate(FORM) />https://stackoverflow.com/questions/15848312
复制相似问题