Javascript и переменные сессии - PullRequest
3 голосов
/ 25 сентября 2008

У меня есть база данных, в которой хранятся события, и страница с объектом календаря. При отображении дней он просматривает события месяцев и, если они совпадают с текущим отображаемым днем, создает кнопку ссылки для представления события в календаре и добавляет его в эту ячейку. Я добавил JavaScript к кнопке ссылки, чтобы изменить window.location на странице для просмотра сведений о событии, передавая EventID в строке запроса (я пытался установить postbackurl для вновь созданной кнопки link, но это не вызывало обратную передачу ... не повезло) Мне нужно установить переменную Session т.е. Session ("EditMode") = "Edit". Таким образом, новая страница будет знать, что нужно получить информацию о существующем событии, а не подготовиться к созданию нового события? Есть предложения?

Ответы [ 5 ]

7 голосов
/ 25 сентября 2008

Ваши сеансовые переменные контролируются сервером, JS работает на стороне клиента, и поэтому не может напрямую изменять переменные.

Вам нужно сделать запросы к серверу используя POST или GET и скрытый iframes или XMLHTTPRequest () вызывает передачу данных из JS в сервер, а затем ваш серверный код обрабатывает переменные.

Добавьте еще одну переменную строки запроса, которую страница может использовать для запуска существующих и новых.

6 голосов
/ 25 сентября 2008

Добавьте еще одну переменную строки запроса, которую страница может использовать для запуска существующих и новых.

2 голосов
/ 18 марта 2011

Если вы используете что-то вроде Struts2, в вашем jsp может быть скрытая переменная

<s:hidden id="EditModeId" value="%{#session.EditMode}"/> 

А внутри javascript просто получите доступ к этой переменной

alert(document.getElementById('EditModeId').value);
1 голос
/ 25 сентября 2008

Вам обязательно нужно добавить переменную на целевую страницу. Но я предполагаю, что вы делаете всплывающий сценарий, поэтому вы должны иметь возможность создать функцию JavaScript OpenWindow () и запускать ее, когда пользователь щелкает ссылку.

<script>
function OpenWindow(eventId, editMode)
{
    var window = window.open("popup.aspx?eventId=" + eventId + "&editMode=" + editMode);
}
</script>

На стороне сервера вам нужно создать вызов функции OpenWindow. Например:

onclick="OpenWindow(eventId=" + row["eventId"].ToString() + "&editMode=" + editMode.ToString() + ");"

Другими словами, подготовьте все на стороне сервера, чтобы настроить JavaScript для публикации всех переменных на новой странице. Надеюсь, это поможет.

0 голосов
/ 01 июля 2014
var page1 = document.getElementById("textbox").value; 
sessionStorage.setItem("page1content", page1);

на другой странице используйте это значение как переменную сеанса

document.getElementById("textbox2").value=sessionStorage.getItem("page1content");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...