У меня есть сайт с несколькими вкладками. Каждая вкладка запускает отдельный отчет на основе набора фильтров, которые принимают свои значения из переменных сеанса.Установка переменных сеанса с JavaScript в ColdFusion
Как это работает в настоящее время:
Пока пользователь находится внутри вкладки отчета они могут открыть меню фильтра для выбора параметров, которые они должны выполнить свой отчет (имена врача, места, дату и т.д.) и затем они могут нажать кнопку запуска, чтобы получить отчет. Когда пользователь нажимает «запустить», форма сохраняет переменные внутри сеанса, где они доступны для запуска других отчетов, без необходимости «запускать» или определять их снова и снова.
То, что я пытаюсь сделать:
Вместо того, чтобы только кнопку «запустить» внутри формы мне нужна кнопка, которая будет устанавливать сеансовые переменные из формы без запуска текущего отчета «Применить» , Таким образом, пользователь может заранее определить свои переменные, не будучи вынужденным запускать отчет, который им не нужен.
Я попытался использовать 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
, чтобы иметь возможность обновлять мои переменные сеанса с новым значением.
Так что же не работает? Мне кажется, что ваш код должен устанавливать для вас переменную сеанса. –
Когда вы говорите «вне моего заявления», что вы имеете в виду? Для каждого приложения задаются переменные сеанса. Если вы запускаете что-то за пределами вашего приложения, вы устанавливаете переменные сеанса для другого приложения. –
cfc, устанавливающий переменные сеанса, находится под общей папкой cfc вне приложения. – Geo