来自经典asp中的Request.Form的数组

时间:2016-11-18 09:56:53

标签: arrays forms vbscript asp-classic

编辑:我现在意识到那些回复说我的问题是关于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的说法,我认为是关键,但会热衷于听取其他想法

2 个答案:

答案 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