powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / передача данных в текстовое поле через %session
15 сообщений из 15, страница 1 из 1
передача данных в текстовое поле через %session
    #37061208
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть текстовое поле с id=iin;
есть #(%session.IDOT)#, там хранится некоторая информация;
на страничке zen пытаюсь в текстовое поле через вызов метода (js) закинуть информацию хранящуюся в %session.IDOT
не понимаю как надо правильно объявлять переменную сессии в методе
Код: plaintext
zenPage.getComponentById('iin').setProperty('value','#(%session.Get("IDOT"))#');
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37061477
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
#(%session.IDOT)# - это неправильно
s var=%session.Get("var")
d %session.Set("var",var) //Если аргументы не перепутал
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37061500
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написал вот так:
%session.Get("IDOT")
Код: plaintext
zenPage.getComponentById('iin').setProperty('value',%session.Get("IDOT"));
ругается:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ZEN EXCEPTION
 http://localhost:57772/csp/user/crms.AddExersizeG.cls 

A JavaScript exception was caught in function zenPageEventHandler
TypeError: win.zenTestIncludes is not a function
--------------------------------------
Error in zenPageEventHandler: onload
evt:undefined
--------------------------------------
Stack trace:
js:zenExceptionHandler(TypeError: win.zenTestIncludes ...,[object Object],Error in zenPageEventHandler: o...)
js:zenPageEventHandler(onload)
js:onload([object Event])
ну типо этого
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37061507
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%session - это переменная времени генерации страницы
А вы похоже, пытаетесь обратиться к ней из Javascript.
Попробуйте взять ее в #()#
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37061517
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.,

изначально брал в #()#, не помогает, искал в документации, ничего не нашел. приходит на ум один вопрос: "можно ли так делать?"
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37061520
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот тута все работает
Код: plaintext
1.
2.
3.
ClassMethod EditF(id) [ ZenMethod ]
{
	Set %session.Data("IDOF")=id
}
не очень охото переходить на ZenMethod
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37061554
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibekне понимаю как надо правильно объявлять переменную сессии в методе
В этом деле нужно чётко понимать "где находитесь" и "в какое время"...

Если в хтмле или яваскрипте обязательны кащейские вставки #()#... Но это работает только в момент компилляции страницы. Т.е. динамика напрочь отсутствует.

Если в Кащее - обращайся напрямую. Тут возможна и динамика.

Вот вроде и все правила для работы с сессион...
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37061774
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibek ,

Объект сессии - это сугубо серверный объект, поэтому Вы не можете к нему обратиться с клиента напрямую.
Если не хотите обращаться к серверу, используйте, например, свойства страницы:
ПримерClass sqlru.test Extends %ZEN.Component.page
{
/// Отображаемое имя для нового приложения.
Parameter PAGENAME;
Property IDOT As %ZEN.Datatype.string;
/// Этот блок Style содержит определение CSS-стиля страницы.
XData Style
{
<style type="text/css">
</style>
}
/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = " http://www.intersystems.com/zen"  ]
{
<page xmlns=" http://www.intersystems.com/zen"  title="">
<text id="iin" value="#(%session.IDOT)# #(%page.IDOT)#" size="70"/>
<text id="iinClient" size="70"/>
<text id="iinServer" size="70"/>
<button caption="Клиентский метод" onclick="zenPage.clientMethod();"/>
<button caption="Серверный метод" onclick="zenPage.ServerMethod();"/>
 </page>
}

ClientMethod clientMethod() [ Language = javascript ]
{
  zenSetProp('iinClient','value',zenPage.GetSession()+' '+zenPage.IDOT);
}

ClassMethod ServerMethod() [ ZenMethod ]
{
  &js<zenSetProp('iinServer','value','#(%session.Data("IDOT"))# '+zenPage.IDOT);>
}

ClassMethod GetSession() As %String [ ZenMethod ]
{
  q %session.Data("IDOT")
}

Method %OnAfterCreatePage() As %Status
{
  set %session.Data("IDOT")="Сервер"
  set ..IDOT="Клиент"
  Quit $$$OK
}
}
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37062516
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
большое спасибо
вроде бы заполняется с помощью описанных выше вариантов,
при срабатывании метода поле заполняется, но при сохранении сохраняет как пустую строку
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37062614
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barl_alibekпри срабатывании метода поле заполняется, но при сохранении сохраняет как пустую строку
Ну тут пора готовить тестовый пример...
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37062909
2acid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
barl_alibekбольшое спасибо
вроде бы заполняется с помощью описанных выше вариантов,
при срабатывании метода поле заполняется, но при сохранении сохраняет как пустую строку
Imho, Контроллер должен знать, что Вы изменили поле, если сохраняете через него ...

Проще написать наверное метода, например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Method setVal(id, val) [ Language = javascript ]
{
	var obj=zen(id)
	obj.setValue(val)
	var form= obj.getForm();
	if (form) {
		form.controlChangeHandler(obj);
	}
}

и вызывать его при программном изменении поля ...
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37069496
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
люди

не было времени на это. короче предложенные идеи переделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ClassMethod EditF(id) [ ZenMethod ]
{
	
	
	 &js<var obj=zenPage.getComponentById('iin');
	obj.setValue('#(%session.Data("IDOT"))#')
	var form= obj.getForm();
	if (form) {
		form.controlChangeHandler(obj);
	}>
	
}

всем спасибо кто участвовал и большой поклон
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37089757
Ivan.Kokov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
barl_alibek,
За передачу данных через объект %session меня часто били по рукам
Постепенно я отвык

Не злоупотребляйте :-)
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37089812
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, удобно.
Но зачастую придумываешь неуникальные идентификаторы, после чего данные начинают передаваться куда не надо.
Так что действительно, без необходимости не стоит злоупотреблять.
...
Рейтинг: 0 / 0
передача данных в текстовое поле через %session
    #37094692
Фотография barl_alibek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УЧТУ
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / передача данных в текстовое поле через %session
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]