我有一个包含多个标签的网站。每个选项卡基于一组从会话变量中获取值的过滤器运行单独的报告。
现在情况如何:
当用户在报告选项卡中时,他们可以打开一个过滤器菜单来选择他们需要运行他们的报告的选项(医生姓名、位置、日期等),然后他们可以点击运行按钮来获取他们的报告。当用户单击“运行”时,表单将变量保存在会话中,它们可用于运行其他报告,而无需单击“运行”或一次又一次地定义它们。
我正在尝试做的事情:
我需要一个“应用”按钮来设置表单中的会话变量而不运行当前报告,而不是在表单中只有一个“运行”按钮。这样,用户可以预先定义他们的变量,而不必被迫运行他们不需要的报告。
我尝试使用 ajax 来调用我的应用程序外部的函数,该函数根据用户的选择设置变量。
我的挑战是以某种格式从函数中取回这些变量,我可以在其中使用它们来更新当前会话变量。
这是我的代码示例:
应用按钮:
<a href="#" id="okbutton" class="savebuttons close-reveal-modal" onclick="setSession();">Apply</a>
我的 Ajax 功能:
function setSession(){
var formData = $('form').serialize();
$.ajax({
url:'/mod_example/components/exampleCFCs/xUtility.cfc?method=setSessionVariables',
data: formData
});
};
我的部分功能:
<cfcomponent output="no">
<cffunction name="setSessionVariables" access="remote" returntype="any">
<cfargument name="docid" type="string" required="no">
<cfif isDefined('docid')>
<cfset session.doctorids = docid>
</cfif>
<cfif isDefined('docid')>
<cfreturn session.doctorids>
<cfelse>
<cfreturn 0>
</cfif>
</cffunction>
</cfcomponent>
我需要的是获得session.doctorids
能够用新值更新我的会话变量的值。