2016-11-18 53 views
1

編輯:我現在意識到在那些誰回答說我的問題是關於是否Request.Form數據是一個字符串的方式a$="FooBar"是一個字符串和Array命令在經典的ASP。來自Request.Form的經典數組中的Request.Form

我想從表單中提交的數據進行數組。

表單字段是動態創建的,並具有相同的名稱「subj」。

Response.Write(Request.Form("subj"))生產:

"Welcome and Introduction, Talk1, Talk2 ,Interactive review of the conference" 

當我檢查TypeNameVarType的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在Form Data上工作。

我試過使用CStr並檢查了所有的引號。

它爲什麼不起作用?

謝謝那些不厭其煩的回覆。雖然Split的領域不工作,沒有逗號,SET var = Request.Form("subj")按@庫爾 - TIGIN,我認爲是關鍵,但會熱衷於聽其他的想法

+2

斯普利特似乎工作 - [字符串與傳統的ASP陣列(http://stackoverflow.com/questions/27954415/string-to-array-with-classic-asp?rq=1) '代碼主題=斯普利特(的Request.Form( 「SUBJ」), 「」)' –

+0

這是因爲託尼,那就是'斯普利特()'函數的整個目的。它需要一個分隔字符串和分裂它分解成基礎上,你可以指定一個常用的分隔符的數組元素,不像'陣列()'它創建從參數列表中的數組。 – Lankymart

回答

1

由於請求集合值可能包含逗號,因此使用split會導致意想不到的結果。

創建通過收集的陣列更可靠。

Set subject = Request.Form("subj") 

ReDim subjects(subject.Count - 1) 

For i = 1 To subject.Count 
    subjects(i - 1) = subject(i) 
Next 
+0

確實如此,但如果你的目的是發送一個帶有創建數組目的的分隔列表,那麼你一定會事先想好這個,'Split()'應該足夠了。 – Lankymart

+0

@Lankymart有什麼用意?除了@瑪莎之外,我正在回答'我試圖從Form中提交的數據中創建一個數組。 –

+0

對不起,這是一個打字錯誤* *「真的,但如果**的意圖」*。它並不針對你我指的是OP的意圖是發送一個數組,因此'Split()'應該足夠了。 – Lankymart

0

Array功能需要一個逗號分隔的列表:"words","stuff","foo",但你從Request.Form得到更像是"words,stuff,foo"

但最終,這並不重要,因爲正如您在評論中指出的那樣,要使用的適當功能是Split

+0

感謝您確認'split'是處理它的正確方法。我認爲我已經通過Replace(Request.Form(「subj」),「,」,「」,「」「)充分轉換了文本,但它似乎不起作用。 –

+0

在您回答問題重複之前,OP已經確認了幾個小時,只是將其標記並繼續前進。任何認爲有關「拆分成數組」的問題的人現在都不需要重新閱讀[爲什麼有些問題被標記爲重複?](http://stackoverflow.com/help/duplicates)。 – Lankymart

+0

謝謝瑪莎。我在現場文本中出現了一些逗號問題,並轉移到@ Kul-Tigin的建議 –