Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在HTML中从onclick调用ASP函数?_Javascript_Html_Session_Asp Classic - Fatal编程技术网

Javascript 如何在HTML中从onclick调用ASP函数?

Javascript 如何在HTML中从onclick调用ASP函数?,javascript,html,session,asp-classic,Javascript,Html,Session,Asp Classic,我的HTML中有3个链接。当我单击其中一个时,会话中的变量必须更改。 我该怎么做 <div id="eng"> <a href="#" onClick="setLanguage('en')";> <img id="eng_img" src="bandiera01.png" /> </a> </div> <div id="rus"> <a href="#" o

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

您需要将信息发送到服务器,您可以通过普通链接发布或通过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()
    对检索本地化资源的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>
    

    javascript和asp生活在不同的环境中,浏览器和服务器。请更具体地说明您想要实现的目标,不要从客户端代码中“调用ASP函数”。您要做的是向服务器端资源(页面)发出请求,在本例中,该资源后面有ASP代码(我想,基本上只是为了运行该功能)。您可以使用AJAX发出这样的请求,而无需刷新当前文档。会话值是否可以通过AJAX更改?我必须保存网站的当前语言。我需要知道这个变量从我的网站的每一页。我不知道阿贾克斯。我可以举一个简单的代码示例来实现这一点吗?我个人最喜欢的是jquery Post/get[但请看一下w3c中的ajax][
        (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)