переменные сессии классический asp - PullRequest
1 голос
/ 09 июня 2011

У меня проблема при использовании переменных сеанса для сохранения отмеченного состояния флажка. Я использую нумерацию страниц, поэтому при нажатии каждой буквы будет отображаться флажок с соответствующей буквой в качестве значения. Когда флажок установлен, его состояние сохраняется, однако проблема заключается в том, что когда я снимаю флажок, он остается установленным. Также не знаю, относится ли это к делу, но я изменил кнопки, чтобы они выглядели как гиперссылки, чтобы я мог использовать метод post вместо использования строки запроса, так как я предпочел бы не использовать ее. Код указан ниже

<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

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Вы должны сохранить значение, которое вы не отметили, перед отправкой, а затем использовать это значение.

        <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 голос
/ 09 июня 2011

я бы использовал скрытое поле для сохранения последней буквы

        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%>" />  
...