#ajax #session #struct #coldfusion #cfml
#ajax #сессия #структура #coldfusion #cfml
Вопрос:
Я начинаю с этой находки;
<cfscript>
app = application.getApplicationSettings().name;
sessionCollection = application.sessionTracker.getSessionCollection(app);
</cfscript>
а затем попытаться выполнить цикл через коллекцию;
<cfloop collection="#sessionCollection#" item="i">
#StructFind(i, 'CurrentAction')#
</cfloop>
что приводит к сбою с;
Вы попытались разыменовать скалярную переменную типа класса java.lang.Строка как структура с элементами.
Я пытался
#CurrentAction[i]#
что приводит к сбою с;
Переменная CURRENTACTION не определена.
когда я точно знаю, что он существует (https://ibb.co/ZJwsKFS)
Я также пробовал точечную нотацию.
Цель состоит в том, чтобы идентифицировать активность прослушивателя ajax для одного пользователя и повлиять на действие другого конкретного пользователя в качестве ответа. У меня сложилось впечатление, что я могу отправить действие конечным пользователем SessionID. Пожалуйста, не стесняйтесь, дайте мне знать, если это невозможно.
Ответ №1:
Итак, этот код:
<cfset x = {
a = 1
, b = 2
, c = 3
}>
<cfoutput>
<cfloop collection="#x#" item="i">
<li>#i#</li>
</cfloop>
</cfoutput>
Выводит следующее:
- A
- B
- C
Что означает, что i
это ключ структуры, определенный в collection
атрибуте. Ваш код пытается найти ключ в коллекции (struct), но вы ссылаетесь не на ту переменную.
Чтобы найти значение B
, вы должны сделать StructFind(x, "b")
. cfloop
Вам тоже не нужно, вам просто нужно проверить, существует ли ключ, а затем получить значение.
<cfset someVariable = "">
<cfif structKeyExists(x, "b")>
<cfset someVariable = structFind(x, "b")>
</cfif>