2014-02-06 2 views
0

도움이 필요합니다. 체크 박스에 체크 표시된 항목을 세션에 저장하고 싶습니다.체크 박스에 체크 된 항목을 저장하여

내가하고있는 일은 확인 된 항목의 값을 가져 와서 배열에 저장하는 것입니다. 그런 다음 그 값을 세션 이름으로 지정하고 세션에 값 1을 할당합니다.

이것은 내가 사용하고 있지만 확인 된 첫 번째 항목 만 가져옵니다. 예를 들어

dim checkboxList 
checkboxList = request.Form("schedule") 
checkboxList = split(checkboxList, ",") 

for each i in checkboxList 
    Session(i) = 1 
next 

은 내가 ("A")

세션을 얻어야한다 나의 체크 박스에 A와 B를 선택하면 = 1 개 세션 ("B") = 1

하지만 유일한 것은 세션 ("A") = 1

이 코드를 사용하여 내 배열에서 올바른 항목을 가져 오는 지 확인하고 데이터가 올바른지 확인하려고했습니다.

dim checkboxList 
checkboxList = request.Form("schedule") 
checkboxList = split(checkboxList, ",") 

for each i in checkboxList 
    response.write(i) 
next 

여기 내 HTML 코드입니다.

<form class="well" method="post" action="applicationSave.asp"> 
<div class="controls"> 
            <input type="checkbox" id="onShifts" name="schedule" value="onShifts" <% if Session("onShifts") = 1 then response.Write("checked") end if %> /> On Shifts?<br> 
            <input type="checkbox" id="nightShifts" name="schedule" value="nightShifts" <% if Session("nightShifts") = 1 then response.Write("checked") end if %> /> Night Shifts?<br> 
            <input type="checkbox" id="partTime" name="schedule" value="partTime" <% if Session("partTime") = 1 then response.Write("checked") end if %> /> Part Time?<br> 
            <input type="checkbox" id="fullTime" name="schedule" value="fullTime" <% if Session("fullTime") = 1 then response.Write("checked") end if %> /> Full Time<br> 
            <input type="checkbox" id="holidays" name="schedule" value="holidays" <% if Session("holidays") = 1 then response.Write("checked") end if %> /> Holidays/Sundays?<br> 
            <input type="checkbox" id="projectBasis" name="schedule" value="projectBasis" <% if Session("projectBasis") = 1 then response.Write("checked") end if %> /> Project Basis 
</div> 
</form> 
+0

무엇이 문제입니까? – ulluoink

+0

체크 된 첫 번째 항목에만 값 1을 지정할 수 있습니다. 예를 들어, 체크 박스에 A, B, C를 체크하면 다음을 얻습니다. 세션 ("A") = 1 세션 ("B") = 1 세션) "C") = 1 하지만 첫 번째 세션 만 가져옵니다. –

+0

정답을 제공하는 데 필요한 HTML도 게시하십시오. – Paul

답변

2

","(쉼표 스페이스) 대신 ","로 분리 된 값이기 때문입니다. 그래서, 할 배열을 사용하기 전에 "트리밍"항목 :

Dim i 
For i = 0 To UBound(checkboxList) 
checkboxList(i) = Trim(checlboxList(i)) 
Next 

또 다른 방법 - 문에 Session(Trim(i)) = 1 물품.

진술 : 일반적으로 코드는 안전하지 않습니다. 예 : 세션 변수 bool 변수 Session("IsAuthorized")이 있습니다. 방문자가 값이 schedule=IsAuthorized 인 .asp 파일로 요청을 보낼 수 있습니다.

+0

고마워요. 나는 너의 코멘트를주의 깊게 가지고 갈 것이다. :) –

관련 문제