2011-06-09 156 views
1

使用會話變量來存儲複選框的選中狀態時出現問題。我正在使用分頁,因此當每個字母被按下時,一個複選框將出現,並將相應的字母存儲爲其值。當一個複選框被選中時,它的狀態被保存,但問題是當我取消選中複選框時,它仍然被選中。也不知道這是否相關,但我已經改變了按鈕看起來像超鏈接,所以我可以使用post方法,而不是使用查詢字符串,因爲我不想使用它。下面提供的代碼會話變量經典asp

<form action="Table.asp" method="post" name="form2"> 
<input type="submit" name="Button" value="#" style="background:transparent;border:0;display:inline;color:#00F;text-decoration:underline;padding:0px;cursor:pointer"> 
<% for i = 97 to 122 %>  
    <input type="submit" name="Button" value="<%=CHR(i) %>" style="background:transparent;border:0;display:inline;color:#00F;text-decoration:underline;padding:0px;cursor:pointer;">&nbsp; 
<% next %> 

</br></br></br> 

<% 
    alphaB = request.form("Button") 
if alphaB <>"" then 

     alphaCheck = request.form("checkBox") 
     if alphaCheck <>"" then 
      session("checkBox_"&alphaCheck) = "checked" 
     else 
      session("checkBox_"&alphaCheck) = "" 
     end if 

     %> 
     <input type="checkbox" name="checkBox" value="<%=alphaB %>" <%=session("checkBox_"&alphaB) %>> 
     <% 
     response.write alphaB 

end if 

回答

3

您應該在回發之前保存'取消選中'的值,然後使用此值。

 <form action="Table.asp" method="post" name="form2"> 
     <input type="submit" name="Button" value="#" style="background:transparent;border:0;display:inline;color:#00F;text-decoration:underline;padding:0px;cursor:pointer"> 
     <% for i = 97 to 122 %>  
      <input type="submit" name="Button" value="<%=CHR(i) %>" style="background:transparent;border:0;display:inline;color:#00F;text-decoration:underline;padding:0px;cursor:pointer;">&nbsp; 
     <% next %> 

     </br></br></br> 

     <% 
      alphaB = request.form("Button") 
     if alphaB <>"" then 

       alphaCheck = request.form("checkBox") 
       if alphaCheck <>"" then 
        session("checkBox_"&alphaCheck) = "checked" 
       else 
       'EDIT use last one 
        session("checkBox_"&session("lastOne")) = "" 
       end if 

       'EDIT save the last one in session 
       session("lastOne") = alphaB 

       %> 
       <input type="checkbox" name="checkBox" value="<%=alphaB %>" <%=session("checkBox_"&alphaB) %>> 
       <% 
       response.write alphaB 

     end if 
     %> 
1

我會做的是使用一個隱藏字段保存最後一個字母

 hidAlphaCheck = request.form("lastcheckbox") 
    alphaCheck = request.form("checkBox") 
    if alphaCheck <>"" then 
     session("checkBox_"&hidAlphaCheck) = "checked" 
    else 
     session("checkBox_"&hidAlphaCheck) = "" 
    end if 
    ... 
    <input type="checkbox" name="checkBox" value="<%=alphaB %>" <%=session("checkBox_"&alphaB) %>> 
    <input type="hidden" name="lastcheckbox" id="lastcheckbox" value="<%=alphaB%>" />