Simpelt getElementById problem - hjælp :)

Tags:    javascript

Hej,

Håber der er nogle der vil hjælpe mig lidt her - har brugt timevis på at løse problemet, men den vil simpelthen ikke!

Det er noget AJAX tam tam, hvor der blir kørt en asp fil ved noget Onclick/onchange i en select dropdown boks, hvorefter en span skal opdateres.

For at starte fra bunden:

Fold kodeboks ind/udKode 


Kort forklaring: Funktionen showHint skal køres og der skal sendes 3 variabler afsted til den, hhv. 2 ID numre først og derefter id'et på den span som skal opdateres, span<%=rs("id")%> kunne f.eks. blive "span3". Det er fordi jeg har flere felter på siden, så kan ikke bare kalde dem <span id="span">...</span>, derfor kalder jeg dem <span id="span1">..</span> osv.

Funktionen der skal køres, er rimelig lang - og virker fint hvis jeg SELV går ind og definerer navnet på den span som skal opdateres, men det skal helst gøres dynamisk, efter ovenstående princip (span1, span2 osv), så her er en simplificeret udgave:


Fold kodeboks ind/udKode 


Problemet er i den nederste getElementById linie, hvis jeg skriver:

Fold kodeboks ind/udKode 


Så bliver mit span2 felt fint opdateret, som det skal:
<span id="span2">her opdateres teksten</span>

Men som nævnt, så skal getElementById automatisk udfyldes efter den variabel jeg sender efter funktionen, i dette tilfædle "spanID". Men det virker ikke.

Feltet opdateres simpelthen ikke.

Hvis jeg udskifter alle linierne i min showHint funktion, med denne kode (for at tjekke at den rigtige variabel bliver sendt):

Fold kodeboks ind/udKode 


Så kommer der fint nok en alert boks op med indholdet af min <span id="span2">...</span>, hvis altså det er "span2" jeg sender efter funktionen - så derfor forstår jeg simpelthen ikke at denne ikke vil virke ordentligt:
document.getElementById(spanID).innerHTML=xmlHttp.responseText;


Er der nogen der kan kaste lidt lys over tingene? Pft.



3 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
FEJL FUNDET :)




I alle de XmlHttp linier som er der, her er de:


Fold kodeboks ind/udKode 


Så var det den her der var synderen "xmlHttp.onreadystatechange=stateChanged;" - når jeg udkommenterede den, så virkede det sgu!

Det hele virkede også fint nok MED den linie, hvis jeg selv angav i script'et hvilket ID i span'en der skulle opdateres, men hvis Id'et skal hentes via en function('blabla','ID') -ting, så var ovenstående linie altså skyld i det ikke virkede.

Så efter 3-4 timers bøvl, virker det nu :)



Hey Klaus,
hehe sådan kan det jo gå og så længe det ikke er flere timer er det jo lige til at overkomme ;)

Er du ikke sød at huske at lukke tråden en anden gang? ;)
Har dog her gjort det for dig :)



Problemet var vel, at du slet ikke sendte spanID videre til statechanged?

onstatechange=function(){statechange(spanID);}

kan formentligt også do the trick. Umiddelbart lyder det ulogisk at det virker, når du slet ikke bruger onstatechanged? Så vil der jo ikke din statechanged jo ikke blive kaldt nogensinde?

Eller også overser jeg noget :)



t