/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Køre 2 javascripts via AJAX på en gang fej~
Fra : Ukendt


Dato : 22-01-08 10:19

Hej Alle

Jeg har et problem :(
Jeg har en button jeg aktivere 2 javascripts med, som så begge kører hver
sin php side backend.
Det virker ikke, den kører kun det sidste script ordenligt, jeg aktivere dem
således:

<input type=\"button\" value=\"Slet hold\" name=\"b7\"
onClick=\"doRemSmallTeam('".$akidtillink."','updatearea".$x1."y');doSearchbox1('".$x1."',
'updatearea".$x1."a'); \" class=\"btn2\"></div><br>";

Og der kører den kun det script der er skrevet sidst, men jeg kan godt kører
2 scripts her, men der er det også kun det ene der aktivere en php side
backend, det andet er ren javascript.

echo "<input type=\"checkbox\" onClick=\"doSearchbox1('".rtrim($x1)."',
'updatearea".rtrim($x1)."a');doShowBut(this);\" name=\"".$x1."\"
id=\"".$x1."\" value=\"".$x1."\"> ".$types[$x1]."<br>";

Er det fordi der ikke er pause imellem de 2 scripts?, og hvis ja, hvordan
fixer jeg så den?

Har også prøvet at lave et enkelt script, der så bare kalder de 2, men det
er samme resultat :(

function doDualfunc(a, b, c, d){
doSearchbox1(c, d);
doRemSmallTeam(a, b);
}

Er der nogle der kan gennemskue fejlen?

Mvh
Morten



 
 
Christian R. Larsen (22-01-2008)
Kommentar
Fra : Christian R. Larsen


Dato : 22-01-08 10:25

"Mr J.." <xSnAbElAstarchild.dk> wrote in message
news:4795b503$0$90267$14726298@news.sunsite.dk...
> Det virker ikke, den kører kun det sidste script ordenligt, jeg aktivere
> dem således:

Kan du ikke være lidt mere præcis med, hvad "ordentligt" betyder?

Endvidere vil jeg tro, at løsningen ligger i de to funktioners udformning,
så måske skal vi se koden for dem også?



Ukendt (22-01-2008)
Kommentar
Fra : Ukendt


Dato : 22-01-08 10:32

>> Det virker ikke, den kører kun det sidste script ordenligt, jeg aktivere
>> dem således:
>
> Kan du ikke være lidt mere præcis med, hvad "ordentligt" betyder?

Den kører noget af scriptet, men når ikke at tage fat i php siden backend,
sådan ser det ihvertfald ud, der kommer intet til skærmen, men man kan godt
få alerts fra javascript delen, der kommer bare ikke noget fra php scriptet
backend.

> Endvidere vil jeg tro, at løsningen ligger i de to funktioners udformning,
> så måske skal vi se koden for dem også?

De to virker 100% hvert for sig, så tror det har noget at gøre med at den
ikke når at kører det første færdigt..

Mvh
Morten



Christian R. Larsen (22-01-2008)
Kommentar
Fra : Christian R. Larsen


Dato : 22-01-08 10:46

"Mr J.." <xSnAbElAstarchild.dk> wrote in message
news:4795b816$0$90272$14726298@news.sunsite.dk...
>>> Det virker ikke, den kører kun det sidste script ordenligt, jeg aktivere
>>> dem således:
>>
>> Kan du ikke være lidt mere præcis med, hvad "ordentligt" betyder?
>
> Den kører noget af scriptet, men når ikke at tage fat i php siden backend,
> sådan ser det ihvertfald ud, der kommer intet til skærmen, men man kan
> godt få alerts fra javascript delen, der kommer bare ikke noget fra php
> scriptet backend.

Hvad sker der, hvis du kører den funktion alene?
Har du prøvet at outputte det tekst-resultat, din fuktion får tilbage fra
PHP-siden? Dvs.: Er du 110% sikker på, at den ikke får noget med tilbage?
>
>> Endvidere vil jeg tro, at løsningen ligger i de to funktioners
>> udformning, så måske skal vi se koden for dem også?
>
> De to virker 100% hvert for sig,

Ja, men det er nu engang ikke en garanti for, at de også virker sammen.




Ukendt (22-01-2008)
Kommentar
Fra : Ukendt


Dato : 22-01-08 10:59

> Hvad sker der, hvis du kører den funktion alene?

Som skrevet før, så kører de 2 funktioner 100% hver for sig..

> Har du prøvet at outputte det tekst-resultat, din fuktion får tilbage fra
> PHP-siden? Dvs.: Er du 110% sikker på, at den ikke får noget med tilbage?

De er her, og det er KUN det der er listet sidst der kommer med output, så
man kan bare skrive det andet bagerst, så der det det der bliver kørt, men
den skulle jo gerne køre begge:

function doSearchbox1(numbers, areas){
var url = "backend5.php?nr=" + numbers;
url += "&time=" + Math.random();
displayArea = null;
http.open("GET", url, true);
displayArea = document.getElementById(areas);
http.onreadystatechange = handleHttpResponse5;
http.send(null);
}

function handleHttpResponse5(){
if ((http.readyState == 4) && (http.status == 200)){
displayArea.innerHTML = http.responseText;
}
}



function doRemSmallTeam(akid, areas){
var url = "backenddelteam.php?holdid=" + akid;
url += "&time=" + Math.random();
displayArea = null;
http.open("GET", url, true);
displayArea = document.getElementById(areas);
http.onreadystatechange = handleHttpResponse9;
http.send(null);

}

function handleHttpResponse9(){

if ((http.readyState == 4) && (http.status == 200)){
displayArea.innerHTML = http.responseText;
}
}


>>> Endvidere vil jeg tro, at løsningen ligger i de to funktioners
>>> udformning, så måske skal vi se koden for dem også?
>>
>> De to virker 100% hvert for sig,
>
> Ja, men det er nu engang ikke en garanti for, at de også virker sammen.

De er så postet nu :)

Mvh
Morten



Christian R. Larsen (22-01-2008)
Kommentar
Fra : Christian R. Larsen


Dato : 22-01-08 11:03

"Mr J.." <xSnAbElAstarchild.dk> wrote in message
news:4795be54$0$90271$14726298@news.sunsite.dk...

>> Har du prøvet at outputte det tekst-resultat, din fuktion får tilbage fra
>> PHP-siden? Dvs.: Er du 110% sikker på, at den ikke får noget med tilbage?

Men er du sikker på det?




Ukendt (22-01-2008)
Kommentar
Fra : Ukendt


Dato : 22-01-08 11:11

>>> Har du prøvet at outputte det tekst-resultat, din fuktion får tilbage
>>> fra PHP-siden? Dvs.: Er du 110% sikker på, at den ikke får noget med
>>> tilbage?
>
> Men er du sikker på det?

Som du kan se, så laver javascriptet udskrift til siden for begge scripts..

Og jeg kan intet se for det ene script, kun det script der kører sidst laver
noget på skærmen :)

Mvh
Morten



Birger (22-01-2008)
Kommentar
Fra : Birger


Dato : 22-01-08 14:47

"Mr J.." <xSnAbElAstarchild.dk> skrev i en meddelelse
news:4795c150$0$90264$14726298@news.sunsite.dk...
>>>> Har du prøvet at outputte det tekst-resultat, din fuktion får tilbage
>>>> fra PHP-siden? Dvs.: Er du 110% sikker på, at den ikke får noget med
>>>> tilbage?
>>
>> Men er du sikker på det?
>
> Som du kan se, så laver javascriptet udskrift til siden for begge
> scripts..
>
> Og jeg kan intet se for det ene script, kun det script der kører sidst
> laver noget på skærmen :)
>
> Mvh
> Morten
>

Jeg har ikke nærlæst, men jeg er næsten sikker på, at dit problem er at du
bruger samme AJAX-object (XMLHTTPRequest) til begge dine forespørgsler
(php), og du gør det asynkront.
Det betyder, at der ikke ventes på et resultat af den første, men den anden
sendes afsted, før det er kommet - effektivt bliver det ikke brugt til
noget, fordi handlet (callback-funktionen) bliver overskrevet i objectet.
Prøv at gøre AJAX requesten synkron i stedet ( 3.parameter i open skal være
false).
Alternativt, skal du oprette et nyt object til hver request.

Birger
-----
http://bbsorensen.dk



Ukendt (22-01-2008)
Kommentar
Fra : Ukendt


Dato : 22-01-08 14:55

> Jeg har ikke nærlæst, men jeg er næsten sikker på, at dit problem er at du
> bruger samme AJAX-object (XMLHTTPRequest) til begge dine forespørgsler
> (php), og du gør det asynkront.
> Det betyder, at der ikke ventes på et resultat af den første, men den
> anden sendes afsted, før det er kommet - effektivt bliver det ikke brugt
> til noget, fordi handlet (callback-funktionen) bliver overskrevet i
> objectet.
> Prøv at gøre AJAX requesten synkron i stedet ( 3.parameter i open skal
> være false).
> Alternativt, skal du oprette et nyt object til hver request.

Hej Birger, du har ret som altid, fandt selv fejlen, har bare ikke nået at
skrive det endnu..
Jeg har oprettet nyt objekt til hvert script.. men vil da lige prøve det
andet du foreslår :)

Mvh
Morten



Birger (22-01-2008)
Kommentar
Fra : Birger


Dato : 22-01-08 20:42

"Mr J.." <xSnAbElAstarchild.dk> skrev i en meddelelse
news:4795f5c0$0$90270$14726298@news.sunsite.dk...
>> Jeg har ikke nærlæst, men jeg er næsten sikker på, at dit problem er at
>> du bruger samme AJAX-object (XMLHTTPRequest) til begge dine forespørgsler
>> (php), og du gør det asynkront.
>> Det betyder, at der ikke ventes på et resultat af den første, men den
>> anden sendes afsted, før det er kommet - effektivt bliver det ikke brugt
>> til noget, fordi handlet (callback-funktionen) bliver overskrevet i
>> objectet.
>> Prøv at gøre AJAX requesten synkron i stedet ( 3.parameter i open skal
>> være false).
>> Alternativt, skal du oprette et nyt object til hver request.
>
> Hej Birger, du har ret som altid, fandt selv fejlen, har bare ikke nået at
> skrive det endnu..
> Jeg har oprettet nyt objekt til hvert script.. men vil da lige prøve det
> andet du foreslår :)
>
> Mvh
> Morten
>

;>)
Forskellen på at gøre det asynkront og synkront, er:
Ved synkron venter scriptet til dit kald er færdigt - det andet kald bliver
derfor ikke udført, før det første er færdigt. (Og derfor kan samme object
bruges til begge kald).
Ved asynkron forsætter scriptet, og det andet kald vil påvirke det første,
når du ikke opretter nyt object.
Ulempen ved de synkrone kald er selvfølgelig, at hele browseren bliver
blokeret mens kaldene er i gang.
Man skal overveje om brugeren faktisk har (skal have) mulighed for at
foretage sig noget andet, mens der ventes - og om de to kald evt. skal komme
i en given rækkefølge på serversiden (php), og måske også kan drille
hinanden der...


Birger
-----
http://bbsorensen.dk



Stig Johansen (23-01-2008)
Kommentar
Fra : Stig Johansen


Dato : 23-01-08 22:19

"Mr J.." <xSnAbElAstarchild.dk> wrote:

> Hej Birger, du har ret som altid, fandt selv fejlen, har bare ikke nået at
> skrive det endnu..
> Jeg har oprettet nyt objekt til hvert script.. men vil da lige prøve det
> andet du foreslår :)

Lige et supplement, du skrev:
if ((http.readyState == 4) && (http.status == 200)){  <--- HER ER LINIE 323

Nu ved jeg ikke om det kun var min browser, men pga. returneret serverfejl,
404,500 jeg kan ikke huske det, så var
http.readyState == 4
MEN
http.status = nonexistent object.
Det kan også være det var URI'en der var forkert.
Din fejlmeddelse kunne tyde på, det var sådan noget du var ude i.

--
Med venlig hilsen
Stig Johansen

Birger (24-01-2008)
Kommentar
Fra : Birger


Dato : 24-01-08 00:33

"Stig Johansen" <stig_johansen_it_at_=(@)hotmail.com> skrev i en meddelelse
news:4797af41$0$90275$14726298@news.sunsite.dk...
> "Mr J.." <xSnAbElAstarchild.dk> wrote:
>
>> Hej Birger, du har ret som altid, fandt selv fejlen, har bare ikke nået
>> at
>> skrive det endnu..
>> Jeg har oprettet nyt objekt til hvert script.. men vil da lige prøve det
>> andet du foreslår :)
>
> Lige et supplement, du skrev:
> if ((http.readyState == 4) && (http.status == 200)){ <--- HER ER LINIE 323
>
> Nu ved jeg ikke om det kun var min browser, men pga. returneret
> serverfejl,
> 404,500 jeg kan ikke huske det, så var
> http.readyState == 4
> MEN
> http.status = nonexistent object.
> Det kan også være det var URI'en der var forkert.
> Din fejlmeddelse kunne tyde på, det var sådan noget du var ude i.
>
> --
> Med venlig hilsen
> Stig Johansen

Jeg tror, at også de genererede fejl, har at gøre med at det samme object
forsøges anvendt til begge kald.
Jeg mener, at status slet ikke er tilgængelig, før readyState == 4
(kommunikation færdig), og det kunne godt være det, fejlen går på.

Birger
-----
http://bbsorensen.dk



Stig Johansen (24-01-2008)
Kommentar
Fra : Stig Johansen


Dato : 24-01-08 02:29

Birger wrote:

> Jeg tror, at også de genererede fejl, har at gøre med at det samme object
> forsøges anvendt til begge kald.
> Jeg mener, at status slet ikke er tilgængelig, før readyState == 4
> (kommunikation færdig), og det kunne godt være det, fejlen går på.

Det var min gamle Konqueror, der gav fejlen.
Jeg tror faktisk, det noget af dit jeg prøvede, det husker jeg ikke lige.
Der _er_ fejl i min Konq, derfor har jeg ikke undersøgt det videre.
status var ikke tilgængelig, _men_ readyState var == 4
Det var noget jeg sad og fumlede med, så det kan også have været en ulovlig
URI (klippe klistre for meget).
Jeg har ikke afprøvet det siden, det var bare et hint om, at det er sket
(for mig).

--
Med venlig hilsen
Stig Johansen

Stig Johansen (24-01-2008)
Kommentar
Fra : Stig Johansen


Dato : 24-01-08 02:31

Stig Johansen wrote:

> Det var min gamle Konqueror, der gav fejlen.

Hov, glemte lige - det var _ikke_ en fejl, men en _exception_ (null)

--
Med venlig hilsen
Stig Johansen

Ukendt (22-01-2008)
Kommentar
Fra : Ukendt


Dato : 22-01-08 13:43

I Firefox bliver ingen af dem kørt og jeg får denne fejl:

uncaught exception: [Exception... "Component returned failure code:
0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]" nsresult:
"0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: javascript:
eval(__firebugTemp__); :: anonymous :: line 1" data: no]

undefined
[Exception... "Component returned failure code: 0x80040111
(NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111
(NS_ERROR_NOT_AVAILABLE)" location: "JS frame ::
http://pweb01.herluf.intra/staff/esasystem/elevdel/ajax.js ::
handleHttpResponse9 :: line 323" data: no]


linie 323 er med i dette:

function doRemSmallTeam(akid, areas){
var url = "backenddelteam.php?holdid=" + akid;
url += "&time=" + Math.random();
displayArea1 = null;
http.open("GET", url, true);
displayArea1 = document.getElementById(areas);
http.onreadystatechange = handleHttpResponse9;
http.send(null);

}

function handleHttpResponse9(){

if ((http.readyState == 4) && (http.status == 200)){ <--- HER ER LINIE
323
displayArea1.innerHTML = http.responseText;
}
}

Jeg synes at det er sort..



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste