Avatar billede el_morten Nybegynder
25. august 2006 - 22:29 Der er 6 kommentarer og
1 løsning

Føre en variabel ned i en anden funktion

Hej.
Jeg sidder lige og roder med noget Ajax/javascript.. men der er noget der driller!

I får lige koden:
var xmlHttp

function loadPage(str, str2){
    // Objekt
    xmlHttp=GetXmlHttpObject()
    // error check
    if (xmlHttp==null){
        alert ("Browser does not support HTTP Request")
        return
    }
    var url="includes/getpage.php"
    url=url+"?page="+str+"&nummer="+str2
    xmlHttp.onreadystatechange=stateChanged
    xmlHttp.open("GET",url,true)
    xmlHttp.send(null)
}

function stateChanged(){
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
    document.getElementById("HER").innerHTML=xmlHttp.responseText
    }

Som I kan se så henter jeg 2 varabler ind i øverste (loadPage)funktion, og sender den til url som php variabler. Det virker også fint.. men jeg vil gerne have en tredje variabel eks. str3 der kan sættes ind, hvor jeg har skrevet HER.

Så det vil sige, hvordan får jeg en variabel sendt fra loadPage funktionen og ned i stateChanged funktionen ??
Avatar billede thesurfer Nybegynder
25. august 2006 - 22:55 #1
Hvis du ikke kan bruge xmlHttp.onreadystatechange=stateChanged(str3), kan du erklære variablen uden for funktionerne..

Eksempel:

<script type="text/JavaScript" language="JavaScript">
str3 = "nogether";

...

function loadPage(str, str2){
...
str3 = "helloworld";
var url="includes/getpage.php"
...
}

function stateChanged(){
...
document.getElementById(str3).innerHTML=xmlHttp.responseText;
...
}

...
</script>

</script>
Avatar billede el_morten Nybegynder
25. august 2006 - 23:35 #2
Nej, jeg har nemlig prøvet xmlHttp.onreadystatechange=stateChanged(str3) og det virker ikke.. hvilket jeg synes er mystisk.. men nu kender jeg ikke det helt store til javascript.
Prøver lige det andet du har skrevet :)
Avatar billede mclemens Nybegynder
26. august 2006 - 10:02 #3
Ikke testet men måske:

function loadPage(str, str2,str3){

...

    xmlHttp.onreadystatechange=function(){stateChanged("'"+str3"'")}

...

function stateChanged(str3){

- - - Men, thesurfers burde virke (forudsat at du ikke skal
bruge flere forskellige str3 værdier ad gangen (asynkront))
Avatar billede thesurfer Nybegynder
31. august 2006 - 19:00 #4
alert("Hello World");
Avatar billede el_morten Nybegynder
07. september 2006 - 19:17 #5
mcclemens, har ikke afprøvet din. Men thesurfer, dit forslag virker. smid lige et svar. (og undskyld ventetiden :-/ )
Avatar billede mclemens Nybegynder
07. september 2006 - 19:36 #6
Min virker med sikkerhed ikke ;) ( så skulle "'"+str3"'"
ihvertfald have været "'"+str3+"'") ... men, når man ikke skal
bruge str3 værdier asynkront er det som sagt lettere at håndtere
det globalt som med thesurfers oprindelige forslag :o)
Avatar billede thesurfer Nybegynder
08. september 2006 - 03:08 #7
Så smider jeg et svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester