比如我在a.asp中有如下代码:
<script>
var object = new Object();function t_onchange(obj){
    var s = document.getElementById("s1").value;
    if(typeof(object[s])=='undefined'){
        object[s]=new Object();
    }
    object[s][obj.id]=obj.checked;
}function s_change(){
    
    for(var i=1;i<7;i++){
    document.getElementById(i).checked=false;
}

    var s = document.getElementById("s1").value;
    if(typeof(object[s])!='undefined'){
        for(var i in object[s]){
            document.getElementById(i).checked=object[s][i];
        }
    }
}
</script>   第
<select name="week" id="s1" onchange="s_change()">
   <% 
      for i=1 to 7
      response.Write "<option value='"&i&"'>"&i 
      NEXT
   %>
</select>
  周  
     <table>
        <tr>
           <td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td><td>星期日</td>
</tr>
        <tr>
   <% for a=1 to 7
   response.Write"<td><input type='checkbox' name='"&a&"' id='"&a&"' onClick='t_onchange(this)'></td>" 
   next
   %>
        </tr>现在checkbox的值都存在object[][]这个数组上,那我应该在b.asp中如何获取a.asp中所选的内容,并且将它换成字符串(例如我之前选过  第一周:星期二  星期四   第三周:星期一 星期六),加入到数据库中?

解决方案 »

  1.   

    没人知道如何写b.asp这代码么?
      

  2.   

    提交不就可以吗?复选框传旨过去是一个数组
    可以用for each来获取没一条信息啊
      

  3.   

    object[][]还是需要在a.asp上转换成字符串才能传递给b.asp,比如转换成json或xml,b.asp中还需要分析数据格式,这样做只有麻烦,不如直接表单传递。
      

  4.   


    <form action="b.asp" method="post">
      第 
    <select name="week" id="s1"> 
      <% 
          for i=1 to 7 
          response.Write " <option value='"&i&"'>"&i 
          NEXT 
      %> 
    </select> 
      周  
        <table> 
            <tr> 
              <td>星期一 </td> <td>星期二 </td> <td>星期三 </td> <td>星期四 </td> <td>星期五 </td> <td>星期六 </td> <td>星期日 </td> 
    </tr> 
            <tr> 
      <% for a=1 to 7 
      response.Write" <td> <input type='checkbox' name='day' value='"&a&"'> </td>" 
      next 
      %> 
            </tr>  </table>
    <input type="submit" onclick="doit()">
    </form>b.asp<%
    week = Request("week")
    dy = Request("day")
    dy = Replace(dy, " ", "")
    arr = Split(dy,",")
    s = ""
    For i = 0 To UBound(arr)
       s = s & getDay(arr(i))
       If i <> UBound(arr) Then s = s & ","
    Next
    Function getDay(s)
    Select Case CStr(s)
    Case "1" getDay = "星期一"
    Case "2" getDay = "星期二"
    Case "3" getDay = "星期三"
    Case "4" getDay = "星期四"
    Case "5" getDay = "星期五"
    Case "6" getDay = "星期六"
    Case "7" getDay = "星期日"
    End Select
    End Function
    Response.Write week
    Response.Write s
    %>
      

  5.   

    你的代码存在几个问题
    首先,不能用单纯的数字来做ID
    所以
    <% for a=1 to 7 
      response.Write" <td> <input type='checkbox' name='"&a&"' id='"&a&"' onClick='t_onchange(this)'> </td>" 
      next 
      %> 
    这个应该改成
    <% for a=1 to 7 
      response.Write" <td> <input type='checkbox' name='b"&a&"' id='b"&a&"' onClick='t_onchange(this)'> </td>" 
      next 
      %> JS里的代码document.getElementById(i).同样改为document.getElementById("b"+i).
      

  6.   

    改了! 我这代码是实现:在第一周里选了几天,然后再选另外一周,下面的表格会清空,然后再选,但是之前选的记录都保存了!就在object[][]里面,那我应该如何在b.asp中写出我选过什么的代码呢
    (例如我选过  第一周:星期二  星期四            第三周:星期一 星期六)
      

  7.   

    把所有的checkbox用一个相同的name, 然后用Requset.Form接收就可以了。 
    得到一个以,分隔的string,然后拆分就可。 
      

  8.   

    把所有的checkbox用一个相同的name, 然后用Requset.Form接收就可以了。 
    得到一个以,分隔的string,然后拆分就可。