我有一個包含多個選項卡的網站。每個選項卡基於一組過濾器運行單獨的報告,這些過濾器從會話變量中獲取其值。在ColdFusion中使用JavaScript設置會話變量
事情怎麼現在的工作:
當用戶在一個報表選項卡里面,他們可以打開過濾器菜單中選擇他們需要運行他們的報告(醫生名稱,位置,日期等)的選項然後他們可以點擊運行按鈕來獲得他們的報告。當用戶點擊「運行」時,表單會保存會話中的變量,以便運行其他報告,而無需點擊「運行」或一次又一次定義它們。
我所試圖做的事:具有表單內唯一的「運行」按鈕
相反,我需要一個「應用」按鈕,將設置表單中的會話變量,而當前運行的報告。這樣用戶可以預先定義他們的變量,而不必強迫他們運行他們不需要的報告。
我試過使用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
的值能夠使用新值更新我的會話變量。
那麼有什麼不工作?它看起來像你的代碼應該爲你設置會話變量。 – 2013-04-10 12:29:10
當你說,「在我的應用程序之外」,你是什麼意思?會話變量根據應用程序設置。如果您正在應用程序之外運行某些內容,則需要爲其他應用程序設置會話變量。 – 2013-04-10 13:10:51
設置會話變量的cfc位於應用程序之外的常規cfc文件夾下。 – Geo 2013-04-10 14:30:56