编辑:我现在意识到那些回复说我的问题是关于Request.Form数据是否是一个字符串的人的帮助,就像a$="FooBar"
是一个字符串和{{1}一样经典ASP中的命令。
我试图从表格中提交的数据制作数组。
表单字段是动态创建的,具有相同的名称" subj"。
Array
产生:
Response.Write(Request.Form("subj"))
当我检查"Welcome and Introduction, Talk1, Talk2 ,Interactive review of the conference"
或TypeName
Request.Form(" subj")是一个字符串。然后我编码:
VarType
打算给出:
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
由于某些原因,阵列没有正确形成,因为没有主题(1)主题(2)或主题(3)。
如果我将subjs = "Welcome and Introduction","Talk1","Talk2","Interactive review of the conference"
subject(0) = "Welcome and Introduction","Talk1","Talk2","Interactive review of the conference"
的输出物理复制并粘贴到我的代码中,那么Array工作正常,但我无法使用Array来处理Form Data。
我已尝试使用subjs
并检查了所有引号。
为什么它不起作用?
感谢那些麻烦回复的人。虽然CStr
确实在没有逗号的字段中工作,{@ 1}}按照@ Kul-Tigin的说法,我认为是关键,但会热衷于听取其他想法
答案 0 :(得分:1)
由于请求集合值可能包含逗号,因此使用split可能会导致无法预料的结果。
通过集合创建数组更可靠。
Set subject = Request.Form("subj")
ReDim subjects(subject.Count - 1)
For i = 1 To subject.Count
subjects(i - 1) = subject(i)
Next
答案 1 :(得分:0)
Array
函数需要以逗号分隔的列表:"words","stuff","foo"
,但您从Request.Form
得到的内容更像是"words,stuff,foo"
。
但最终,这并不重要,因为正如您在评论中所指出的那样,使用的适当函数是Split
。