将复选框中的选中项保存到会话中

时间:2014-02-06 15:39:08

标签: asp.net asp-classic

需要帮助。我想将复选框中的项目保存到会话中。

我正在做的是获取已检查项目的值并将其存储在数组中。然后,我将该值指定为会话名称,并为会话分配值1。

这是我正在使用的代码,但它只获取了第一个被检查的项目。

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

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

例如,如果我检查我的复选框上的A和B,我应该

会话(“A”)= 1且会话(“B”)= 1

但我唯一得到的是Session(“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>

1 个答案:

答案 0 :(得分:2)

这是因为值以“,”(逗号空格)分隔,而只是“,”。 因此,在使用数组制作“修剪”项目之前:

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

另一种方法 - 在for语句中写Session(Trim(i)) = 1

BTW:通常,您的代码不安全。例如,你有一些会话bool变量Session("IsAuthorized")。访问者可以将请求发送到您的.asp文件,其值为schedule=IsAuthorized ...