Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kalde 2 funktioner på samme tid fejler via ajax :(

0 views
Skip to first unread message

Morten Juel

unread,
Sep 9, 2009, 12:15:52 PM9/9/09
to
Hej alle :)

Kender i det, jeg mener jeg for �r siden har haft samme problem, men nu kan
jeg ikke huske hvordan jeg l�ste det :(
N� men here goes:

Jeg har f�lgende php linie:

$s .= "<a style=\"cursor: pointer;\"
onClick=\"ankomstdatocalc(".$d.",".$a[1].",".$a[0].");
slutcalchange(".$a[0].",".$a[1].",".$d.");\" >$d</a>";

Men ved on click bliver kun den sidste funktion k�rt.

Her er de 2:

function slutcalchange(mdr,aar,dato){
var params = "time=" + Math.random();
var url = "slutcal.php?";
params += "&month=" + mdr;
params += "&year=" + aar;
params += "&dato=" + dato;
http.open("POST", url, true);
http.onreadystatechange = handleHttpResponse3;
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);
}


function ankomstdatocalc(dato,aar,mdr){
var params = "time=" + Math.random();
var url = "ankomstdatocal.php?";
params += "&dato=" + dato;
params += "&aar=" + aar;
params += "&mdr=" + mdr;
http.open("POST", url, true);
http.onreadystatechange = handleHttpResponse4;
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);
}

De laver begge en opdatering af hver sin <div> p� siden. Hver for sig
spiller de fint, men onClick med 2 funktioner spiller bare ikke..
S� vidt jeg husker, s� er vi ude i at de skal k�res lige efter hinanden, men
hvorn er det nu lige at det ordnes?
Jeg har pr�vet at lave en function hvor de 2 functioner s� bare bliver kaldt
fra, men det �ndre intet :(

Er der en der lige sidder med et par guldkorn, s� ville det v�re sweet :)

Mvh
Morten


Morten Juel

unread,
Sep 9, 2009, 12:24:28 PM9/9/09
to
Lige en lille update, jeg har f�et det til at k�re i IE ved at k�re dem
synkront, s�ledes:

http.open("POST", url, false);

Men det er FireFox ligeglad med, s� gider den ikke at k�re nogle af
funktionerne :(

Gode r�d modtages med kysh�nd..

Mvh
Morten


Lasse Reichstein Nielsen

unread,
Sep 9, 2009, 1:52:49 PM9/9/09
to
"Morten Juel" <xSnAbElAstarchild.dk> writes:

Kalder to funktioner i streg ...

> function slutcalchange(mdr,aar,dato){
> var params = "time=" + Math.random();
> var url = "slutcal.php?";
> params += "&month=" + mdr;
> params += "&year=" + aar;
> params += "&dato=" + dato;
> http.open("POST", url, true);
> http.onreadystatechange = handleHttpResponse3;
> http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
> http.setRequestHeader("Content-length", params.length);
> http.setRequestHeader("Connection", "close");
> http.send(params);
> }
>
>
> function ankomstdatocalc(dato,aar,mdr){
> var params = "time=" + Math.random();
> var url = "ankomstdatocal.php?";
> params += "&dato=" + dato;
> params += "&aar=" + aar;
> params += "&mdr=" + mdr;
> http.open("POST", url, true);
> http.onreadystatechange = handleHttpResponse4;
> http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
> http.setRequestHeader("Content-length", params.length);
> http.setRequestHeader("Connection", "close");
> http.send(params);
> }
>

> Er der en der lige sidder med et par guldkorn, s� ville det v�re sweet :)

Du ser ud til at genbruge det samme XMLHttpRequest-objekt (variablen
"http"). N�r du g�r det asynkront, s� vil den f�rste sikkert ikke engang
n� at sende requesten afsted f�r objektet bliver reinitialiseret og genbrugt
af den anden funktion. Det g�r ikke. Kun en request per XHR-objekt ad gangen.

Hvis den f�rste er synkron, s� vil den n� at blive f�rdig f�r den
anden begynder, og s� er der ikke noget problem (men heller ikke nogen
parallelitet)

S�: Brug forskellige XHR-objekter i de to funktioner.

/L
--
Lasse Reichstein Holst Nielsen
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Anders

unread,
Sep 9, 2009, 2:23:53 PM9/9/09
to
Morten Juel skrev:
I firefox skal du kalde onload istedet for onreadystatechange hvis
du POST'er synkront. Det klarer du med en if-s�tning ex.

if ( nav.indexOf( 'Netscape') > -1) {
...
} else {
...
}

Birger har skrevet en rigtig god artikel om det p� sin side
http://bbsorensen.dk/?men=Software/AJAX eller
http://bbsorensen.dk/?men=Software/AJAX/Pas%20P
og vistnok ogs� her i nyhedsgrupperne.

Morten Juel

unread,
Sep 9, 2009, 2:44:15 PM9/9/09
to
> I firefox skal du kalde onload istedet for onreadystatechange hvis du
> POST'er synkront. Det klarer du med en if-s�tning ex.
>
> if ( nav.indexOf( 'Netscape') > -1) {
> ...
> } else {
> ...
> }
>
> Birger har skrevet en rigtig god artikel om det p� sin side
> http://bbsorensen.dk/?men=Software/AJAX eller
> http://bbsorensen.dk/?men=Software/AJAX/Pas%20P
> og vistnok ogs� her i nyhedsgrupperne.

Kanon, s� spiller det jo :)

Tak til dig, og Bigers side :)

Mvh
Morten


Morten Juel

unread,
Sep 9, 2009, 2:45:23 PM9/9/09
to
> Du ser ud til at genbruge det samme XMLHttpRequest-objekt (variablen
> "http"). N�r du g�r det asynkront, s� vil den f�rste sikkert ikke engang
> n� at sende requesten afsted f�r objektet bliver reinitialiseret og
> genbrugt
> af den anden funktion. Det g�r ikke. Kun en request per XHR-objekt ad
> gangen.
>
> Hvis den f�rste er synkron, s� vil den n� at blive f�rdig f�r den
> anden begynder, og s� er der ikke noget problem (men heller ikke nogen
> parallelitet)
>
> S�: Brug forskellige XHR-objekter i de to funktioner.

Ja fik l�st det, men s� kom FF fejlen, men den er ogs� l�st i tr�den :)
Tak for svar :)

Mvh
Morten


0 new messages