来自 Request.Form 的经典数组 asp
Array from Request.Form in classic asp
编辑:在那些回答我的问题的人的帮助下,我现在意识到我的问题是关于 Request.Form 数据是否是一个字符串,就像 a$="FooBar"
是一个字符串和经典中的 Array
命令 ASP.
我正在尝试根据表单中提交的数据创建一个数组。
表单字段是动态创建的并且具有相同的名称"subj"。
Response.Write(Request.Form("subj"))
产生:
"Welcome and Introduction, Talk1, Talk2 ,Interactive review of the conference"
当我检查 TypeName
或 VarType
时 Request.Form("subj") 是一个字符串。然后我编码:
subjs = """" & Replace(Request.Form("subj"), ", ", """,""") & """"
subjects = Array(subjs)
有意赠送:
subjs = "Welcome and Introduction","Talk1","Talk2","Interactive review of the conference"
subjects(0) = Welcome and Introduction
subject(1) = Talk1
subject(2) = Talk2
subject(3) = Interactive review of the conference
问题是我实际得到的是:
subjs = "Welcome and Introduction","Talk1","Talk2","Interactive review of the conference"
subject(0) = "Welcome and Introduction","Talk1","Talk2","Interactive review of the conference"
由于某种原因,数组的格式不正确,因为没有主题 (1) 主题 (2) 或主题 (3)。
如果我将 subjs
的输出物理复制并粘贴到我的代码中,则 Array 可以正常工作,但我无法让 Array 处理表单数据。
我试过使用 CStr
并检查了所有引号。
为什么不起作用?
感谢不厌其烦回复的各位。虽然 Split
确实在没有逗号的字段中工作,但根据 @Kul-Tigin SET var = Request.Form("subj")
,我认为这是关键,但很想听听其他想法
Array
函数需要一个逗号分隔的列表:"words","stuff","foo"
,但是您从 Request.Form
得到的更像是 "words,stuff,foo"
.
不过,最终这并不重要,因为正如您在评论中指出的那样,要使用的适当函数是 Split
.
由于请求集合值可能包含逗号,使用拆分可能会导致意外结果。
通过集合创建数组更靠谱
Set subject = Request.Form("subj")
ReDim subjects(subject.Count - 1)
For i = 1 To subject.Count
subjects(i - 1) = subject(i)
Next
编辑:在那些回答我的问题的人的帮助下,我现在意识到我的问题是关于 Request.Form 数据是否是一个字符串,就像 a$="FooBar"
是一个字符串和经典中的 Array
命令 ASP.
我正在尝试根据表单中提交的数据创建一个数组。
表单字段是动态创建的并且具有相同的名称"subj"。
Response.Write(Request.Form("subj"))
产生:
"Welcome and Introduction, Talk1, Talk2 ,Interactive review of the conference"
当我检查 TypeName
或 VarType
时 Request.Form("subj") 是一个字符串。然后我编码:
subjs = """" & Replace(Request.Form("subj"), ", ", """,""") & """"
subjects = Array(subjs)
有意赠送:
subjs = "Welcome and Introduction","Talk1","Talk2","Interactive review of the conference"
subjects(0) = Welcome and Introduction
subject(1) = Talk1
subject(2) = Talk2
subject(3) = Interactive review of the conference
问题是我实际得到的是:
subjs = "Welcome and Introduction","Talk1","Talk2","Interactive review of the conference"
subject(0) = "Welcome and Introduction","Talk1","Talk2","Interactive review of the conference"
由于某种原因,数组的格式不正确,因为没有主题 (1) 主题 (2) 或主题 (3)。
如果我将 subjs
的输出物理复制并粘贴到我的代码中,则 Array 可以正常工作,但我无法让 Array 处理表单数据。
我试过使用 CStr
并检查了所有引号。
为什么不起作用?
感谢不厌其烦回复的各位。虽然 Split
确实在没有逗号的字段中工作,但根据 @Kul-Tigin SET var = Request.Form("subj")
,我认为这是关键,但很想听听其他想法
Array
函数需要一个逗号分隔的列表:"words","stuff","foo"
,但是您从 Request.Form
得到的更像是 "words,stuff,foo"
.
不过,最终这并不重要,因为正如您在评论中指出的那样,要使用的适当函数是 Split
.
由于请求集合值可能包含逗号,使用拆分可能会导致意外结果。
通过集合创建数组更靠谱
Set subject = Request.Form("subj")
ReDim subjects(subject.Count - 1)
For i = 1 To subject.Count
subjects(i - 1) = subject(i)
Next