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