如何将客户端JavaScript返回值传递给ASP经典服务器端

3

javascript

       function test(abc) {
         var ddlArray = new Array();
            var ddl = document.getElementById('AdjusterList');
          for (i = 0; i < ddl.options.length; i++) {
            ddlArray[i] = ddl.options[i].value;
          }
  var indexsel = ddl.selectedIndex;
      return indexsel ;            
     }

ASP

                 strArrayCRN = osRecordSet.RecordCount
                 strArrayCRN2 = osRecordSet2.RecordCount
                 dim StrCount 
                 StrCount =strArrayCRN+strArrayCRN2

HTML +ASP

<select name="AdjusterList" id="AdjusterList" onchange='test("<%=StrCount%>")'><%
%>
   <option value="0">Please choose an option from the list.</option>
  <% Do While (osRecordSet.EOF = False)
       %><option value="<%=osRecordSet.RowPosition%>">
          <%=osRecordSet.Fields("NAME")%></option>
      <%
     osRecordSet.MoveNext
      Loop        %><%
    Do While (osRecordSet2.EOF = False)
            %><option value="<%=osRecordSet2.RowPosition%>">
           <%=osRecordSet2.Fields("NAME")%></option>
       <%   osRecordSet2.MoveNext    Loop        %>

关于将函数test()的返回值(即所选索引的值)传递到ASP服务器端

我想传递函数test()返回的值,也就是选中的索引值,到ASP服务器端。


将您想要发送的值放入隐藏字段中。 - NoviceProgrammer
1个回答

5

如果您希望在普通的HTML页面提交时将其发送到服务器,请将返回值放入隐藏字段中。

如果您想在表单提交之前发送该值,请使用AJAX。

隐藏字段方法

JavaScript

function test(abc) {
         var ddlArray = new Array();
            var ddl = document.getElementById('AdjusterList');
          for (i = 0; i < ddl.options.length; i++) {
            ddlArray[i] = ddl.options[i].value;
          }
  var indexsel = ddl.selectedIndex;
      document.getElementById("returnValueField").value = indexsel;
      return indexsel ;            
     }

HTML

<input type="hidden" id="returnValueField" name="returnValueField" />

在ASP中,像处理其他表单字段一样处理此隐藏字段。

对于AJAX,使用类似jQuery的库可以使事情变得更容易

使用jQuery进行AJAX

首先需要在页面中包含jQuery库。

然后将您的函数修改为以下内容

function test(abc) {
             var ddlArray = new Array();
                var ddl = document.getElementById('AdjusterList');
              for (i = 0; i < ddl.options.length; i++) {
                ddlArray[i] = ddl.options[i].value;
              }
      var indexsel = ddl.selectedIndex;
          // Ajax call starts
          $.ajax({
                 url: "your_asp_page_to_handle_request.asp",
                 data: {"selected_index": indexsel },
                 success: function() { 
                    alert("I am back after sending data sucessfully to server.");}
                 });
          // Ajax call ends  

          return indexsel ;            
         }

您的ASP代码在 your_asp_page_to_handle_request.asp 中将如下所示:
<%

dim selectedIndex
selectedIndex = Request.QueryString("selected_index")

%>

请注意,您也可以使用 jQuery.get() 而不是我们上面使用的 Ajax 函数。

你是否愿意使用jQuery? - kiranvj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接