如何通过 asp 页中的二维数组进行基本阅读

How to do prime reading through a 2D array in asp pages

对于我的学校项目,我应该从 HTML 表格中读取值,该表格有 30 行和 4 列。 我制作了一个二维数组并像这样读取(请忽略验证部分):

Sub primeRead()
    For i = 0 To 29
        cDetails(i, 0) = Request.Form("UnitCode_" & rowID+1)
        If cDetails(i,0) = " " Then
            response.write("Hello")
            Exit For
        End If
        cDetails(i, 1) = Request.Form("CP_" & rowID)
        If cDetails(i, 1) = "15" Or "20" Then
            'response.write("Credits points must be 15 or 20")
            'Exit For
        End If
        cDetails(i, 2) = Request.Form("YS_" & rowID)
        If cDetails(i, 2) = " " Then
            response.write("Hello")
            Exit For
        End If
        cDetails(i, 3) = Request.Form("UM_" & rowID)
        If cDetails(i,3) = " " Then
            response.write("Hello")
            Exit For
        End If
        rowID = rowID + 1
        i = i + 1
    Next
End Sub

但是,当我输出从这样的表单中获取的输入时:

<%For x = 0 To 29%>
<tr>
<td> <%response.write(cDetails(x, 0))%><td/>
<td> <%response.write(cDetails(x, 1))%><td/>
<td> <%response.write(cDetails(x, 2))%><td/>
<td> <%response.write(cDetails(x, 3))%><td/>
<td> <%response.write(cDetails(x, 3))%><td/>
<tr/>
<%Next%>

它最多只显示 15 行。 2D 数组 VBScript 或其他导致这种不良输出的限制是否存在?

您误解了 For 循环的工作原理。循环变量是自动的。像你一样在循环体中递增变量会导致代码每隔一行跳过一次。从循环中删除行 i = i + 1

For i = 0 To 29
    ...
    <b><strike>i = i + 1</strike></b>
Next

此外,条件 cDetails(i, 1) = "15" Or "20" 不会像您预期的那样工作。它将检查值 cDetails(i, 1) 是否等于 "15" 或者字符串 "20" 是否为真。如果你想将一个变量与多个值进行比较,你必须分别将变量与每个值进行比较:

If cDetails(i, 1) = "15" Or cDetails(i, 1) = "20" Then
  ...
End If