0

我的 HTML 中有 3 个链接。当我单击其中一个时,会话中的变量必须更改。我怎样才能做到这一点?

<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 中使用它来将它保存在会话中。

4

2 回答 2

1

您需要将信息发送到服务器,您可以通过普通链接发布或通过 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>

在目的地页面中,您可以获得链接的“语言”信息。

于 2013-11-08T14:02:38.073 回答
0

您可以通过以下几种方式解决此问题:

  1. 将您的链接变成提交按钮,将它们放在表单中,提交页面服务器端以管理语言更改业务逻辑。这是一个经典的 asp 方法。您必须重建页面服务器端。

  2. 让对setLanguage()检索本地化资源的 asp 页面进行 ajax 调用。成功后,资源将映射到 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>

脚本

    (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)
于 2013-11-08T14:48:11.527 回答