webForumDet fria alternativet

skapar en array och får värdet "undefined"??

3 svar · 514 visningar · startad av eddy1

eddy1Medlem sedan aug. 2001969 inlägg
#1

avänder ajax och får lite data hämtad via detta från en asp fil..
asp filen skriver ut information avsklijd med semikolon. såhär:

12:lisa;13:sarah;14:lars

och så här försöker jag hantera datan med javascript.. variabeln res inehåller datan...

arrTest = res.split(";");

var anr;
anr = arrTest.length;
for (i=0;i<=anr;i++){

arrTest2 = arrTest[i].split(":");

theOption=document.createElement("option");
theText=document.createTextNode(arrTest2[0]);
theOption.appendChild(theText);
myselect.appendChild(theOption);
}

vad jag vill uppnå är att jag skapar "options" för varje person och kopplar id nr till namnet.... Men som det är nu så får jag med 2 st Undefined poster i arrayen??

Någon med ideer??

Mvh

Peter SMedlem sedan dec. 20025 483 inlägg
#2
for (var i=0;i<anr;i++)
nitro2k01Medlem sedan aug. 20039 342 inlägg
#3

Dels använder du fel jämförelse. < inte <= är rätt för en sådan loop. Du läser alltså utanför arrayens bounds.
Dels så har den första splittade arrayen troligen en tom sträng som sista element pga ett semikolon på slutet. Jag rekommenderar nedanstående kod.
Dessutom har jag lagt till var i for-satsen. Detta deklarerar i lokalt i for-loopen och motverkar därmed variabel-krockar som kan uppstå i mer komplicerade situationer.

arrTest = res.split(";");

var anr;
anr = arrTest.length;
for (var i=0;i<anr-1;i++){

arrTest2 = arrTest[i].split(":");

theOption=document.createElement("option");
theText=document.createTextNode(arrTest2[0]);
theOption.appendChild(theText);
myselect.appendChild(theOption);
}
eddy1Medlem sedan aug. 2001969 inlägg
#4

okey...
det funkade som det skulle....

Tackar

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)