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:
<option onclick="showHint('<%=rs4("id")%>','<%=rs("id")%>','span<%=rs("id")%>')"><%=rs4("country")%></option>
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:
function showHint(cID,bID,spanID)
{
(en masse xmlHttp linier her - det virker fint nok som det skal)
}
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById(spanID).innerHTML=xmlHttp.responseText;
}
}
Problemet er i den nederste getElementById linie, hvis jeg skriver:
document.getElementById('span2').innerHTML=xmlHttp.responseText;
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):
var container = document.getElementById(spanID);
alert(container.innerHTML);
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.