2017-01-25 3 views
1

У меня есть форма, которая отправит массив данных на страницу ASP.
Предположим, что этот массив называется «матрицей».ASP Classic: поместите «переменную» в «Request.Form()»

Обычно, на ASP, получающем форму, я напишу это, чтобы получить входные данные формы из массива «matrix».

Request.Form("matrix[]")(i) where i = 1, 2, 3 which are the elements in the array. 

Допустим, я хочу сделать сделать переменную как этот

a="matrix" 

, и я хочу использовать эту переменную a и поместить его в форму запроса, вместо того, чтобы писать "matrix", так что это было бы что-то вроде этого

Request.Form(a[])(i) 

Как это сделать? Пока все мои попытки показывают пустоту. например когда я пытаюсь сделать их отображаемыми на странице с помощью response.write, ничего не появляется.

Пожалуйста, помогите мне или дайте мне знать, если это невозможно, я трачу часы на это.

+1

'Request.Form()' принимает ключ 'string' как идентификатор, поэтому любая действительная строковая переменная будет передана' Request.Form (mystringvariable) '. Я изо всех сил стараюсь следовать тому, что вы пытаетесь сделать. Если вы хотите передать массив, сначала определите его «Array» («matrix», «something», «else») ', затем передайте элемент, который вы хотите« Request.Form() », например« Request.Form (thearray (0)) 'eqivalent к' Request.Form ("matrix") '. – Lankymart

+0

@ Lankymart спасибо lankymart ваш ответ помог мне понять Request.Form лучше. Я тестировал его, и он работает! –

+1

Как Lankymart, я озадачен тем, что вы пытаетесь сделать. Вы как-то под впечатлением, что квадратные скобки волшебным образом превращают вещи в массив? (Они не будут.) – Martha

ответ

1

Request.Form("matrix[]") принимает строковое значение "matrix[]" не массив строк, называемый "matrix".

Так что вам нужно сделать либо

a = "matrix[]" 
Request.Form(a)(i) 

или

a = "matrix" 
Request.Form(a & "[]")(i) 
+2

Привет братан как ваш ответ и @ lankymart помогли мне решить мою проблему. Спасибо, что объяснили! –

+1

@YoongTat вы могли бы разместить свое решение в качестве ответа, чтобы мы знали, что вы сделали, чтобы исправить эту проблему ?, поскольку я до сих пор не понимаю, чего вы пытаетесь достичь. – Lankymart

2

В отличие от PHP, который требует добавления квадратных скобок, в классическом ASP вы просто должны дать такое же имя, чтобы элементы, которые вы хотите быть объединены в массив.

HTML, должно быть:

<input type="text" name="matrix" /> 
<input type="text" name="matrix" /> 
<input type="text" name="matrix" /> 

Затем вы можете перебрать представленные значения, как это:

For x=1 To Request.Form("matrix").Count 
    Response.Write("Value of matrix #" & CStr(x) & "is: " & Request.Form("matrix").Item(x)) 
Next 

Обратите внимание, что все элементы включены, даже если пользователь оставил их пустыми.