Массив JScript с Request.Form

У меня вопрос, возможно глупый, но я не могу его решить...

Я отправляю форму, которая содержит такие входные данные:

<input type="hidden" id="hidden0" name="Options2" value="0" />
<input type="hidden" id="hidden1" name="Options2" value="30" />
<input type="hidden" id="hidden2" name="Options2" value="4" />
<input type="hidden" id="hidden3" name="Options2" value="-1" />
<input type="hidden" id="hidden4" name="Options2" value="-1" />
<input type="hidden" id="hidden5" name="Options2" value="-1" />
<input type="hidden" id="hidden6" name="Options2" value="-1" />
<input type="hidden" id="hidden7" name="Options2" value="-1" />

Обратите внимание, что эти 8 входов создаются динамически. При нажатии кнопки «Отправить» я получаю все входные данные, созданные динамически с именем = «Параметры», и помещаю значения в некоторые общие входные данные.

var inputs = document.getElementsByName("Options"+cpt);
for( var g = 0; g < 8; g++ )
{
    document.all.Options[g].value = inputs[g].value;
}

Когда я получаю форму, я получил эту строку:

var arrayOption = Request.Form("Options");

Если я Response.Write(arrayOption), я вижу результат: 0, 30, 4, -1 и т. д. Я пытаюсь получить все значения внутри цикла следующим образом:

for (var k = 0; k < arrayOption.count; k++) {
    Response.Write(arrayOption[k]);
}

В этом случае arrayOption[k] не определен, и я не знаю, почему. Я также заметил, что arrayOption.length не работает (поэтому я использовал .count). Похоже, что arrayOption не является истинным массивом, поэтому я попытался разделить его, но Object не поддерживает это свойство или метод. Что не так со всем этим?


person Shadowizoo    schedule 05.09.2012    source источник
comment
Весь мой пример - это javascript, но я тоже использую asp   -  person Shadowizoo    schedule 05.09.2012
comment
@SLaks спрашивает, что это за серверный язык... В браузере запущен JavaScript (блок кода после вашей разметки), но последние два блока кода появляются быть серверным JScript на ASP, который не является javascript. Нам нужно знать, чтобы дать правильный ответ!   -  person Andras Zoltan    schedule 05.09.2012
comment
Извините, я думал, что JScript такой же, как javascript. Это ASP Classic + JScript на стороне сервера.   -  person Shadowizoo    schedule 05.09.2012


Ответы (1)


Что ж, это выглядит как ASP Classic + JScript на стороне сервера, поэтому вам нужен Enumerator() для просмотра коллекции, например.

for (var e = new Enumerator(Request.Form); !e.atEnd(); e.moveNext())
     Response.Write(e.item() + "=" + Request.Form(e.item()) + "<br>");

Перечисляет все данные сообщения

person Alex K.    schedule 05.09.2012
comment
Если отправлен действительный POST, это будет работать нормально. POST от API выборки такой же, как POST от чего-либо еще. - person Alex K.; 28.02.2018