У меня есть 3 ссылки в моем HTML. Когда я нажимаю одну из них, переменная в сеансе должна меняться. Как я могу это сделать?
<div id="eng">
<a href="#" onClick="setLanguage('en')";>
<img id="eng_img" src="bandiera01.png" />
</a>
</div>
<div id="rus">
<a href="#" onclick="setLanguage('ru');">
<img id="rus_img" src="bandiera02.png" />
</a>
</div>
<div id="ted">
<a href="#" onclick="setLanguage('de');">
<img id="ted_img" src="bandiera03.png" />
</a>
</div>
setLanguage (txt) - это функция JavaScript, но я хочу использовать ее в ASP, чтобы сохранить ее в сеансе.
Вам нужно отправить информацию на сервер, вы можете отправить по обычной ссылке или отправить ajax. Я думаю, что в этом случае лучше отправить обычную ссылку, например:
<div id="eng">
<a href="ChangeLanguage.asp?language=en">
<img id="eng_img" src="bandiera01.png" /></a>
</a>
</div>
<div id="rus">
<a href="ChangeLanguage.asp?language=ru">
<img id="rus_img" src="bandiera02.png" />
</a>
</div>
<div id="ted">
<a href="ChangeLanguage.asp?language=de">
<img id="ted_img" src="bandiera03.png" />
</a>
</div>
На странице назначения вы получаете информацию о "языке" ссылки.
Вы можете решить эту проблему несколькими способами:
Поверните свои ссылки в кнопки отправки, поместите их в форму, отправьте сервер страниц на сервер, чтобы управлять бизнес-логикой изменения языка. Это классический подход asp. Вы должны перестроить сервер страницы.
Пусть setLanguage()
вызов ajax на страницу asp, которая извлекает локализованные ресурсы. При успехе ресурсы отображаются в соответствующие элементы DOM: возможно, эта логика может быть различной функцией:
HTML
<div class="lang">
<a href="#" data-lang="en">en</a>
</div>
<div class="lang">
<a href="#" data-lang="ru">ru</a>
</div>
<div class="lang">
<a href="#" data-lang="de">de</a>
</div>
SCRIPT
(function($){
window.setLanguage = function(langCode){
$.ajax({
type: "GET",
url: "myLanguageHandler.asp",
data: { "languageCode": languageCode },
async: true,
error: function (req, status, message) {
//manage the error
},
success: function (data) {
mapPage(data);
}
});
/*
* for demo purpose only
* console.log('Set language: ' + langCode);
*/
};
$('.lang a').bind('click', function(e){
window.setLanguage($(e.target).attr('data-lang'));
return false;
});
})(jQuery)