ugrás a tartalomhoz

Ajax, JS visszatérési érték

NZol · 2010. Okt. 15. (P), 13.31
Sziasztok!
Kérnék egy kis segítséget. A probléma annyi, hogy nem tudom hogyan tudnék visszatérési értéket adni a "Vizsgal()" függvénynek, a "Kesz()" függvény visszatérési értéke alapján. Pl.: ha a "Kesz()" true -val tér vissza akkor a "Vizsgal()" is true -val térjen vissza.
  1. <script type="text/javascript">  
  2.   
  3. var req2;  
  4.     var url = "teszt/";  
  5.             if(window.XMLHttpRequest)  
  6.             {  
  7.                req2 = new XMLHttpRequest();  
  8.             }else{  
  9.               req2 = new ActiveXObject("Microsoft.XMLHTTP");  
  10.             }  
  11.   
  12.               
  13.   
  14. function Vizsgal(){    
  15.       req2.onreadystatechange = Kesz;  
  16.                 
  17.       req2.open("GET",url+"ellenor.php",true);  
  18.       req2.send(null);             
  19. }  
  20.   
  21. function Kesz(){    
  22.   if (req2.readyState == 4 || req2.readyState == 'complete') {  
  23.             
  24.          //alert(req2.responseText);  //itt kiírja amit az ellenor.php küld neki  
  25.              
  26.            if(req2.responseText == 'ok'){return true;}  
  27.            else if(req2.responseText == 'no'){return false;}  
  28.       }  
  29. }  
  30.   
  31. </script>      
Előre is köszi a segítséget.
 
1

Sehogy

Poetro · 2010. Okt. 15. (P), 13.50
Leginkább sehogy, mivel a Kesz és a Vizsgal függvényeknek semmi közük egymáshoz, mivel a Kesz függvényt egy esemény váltja ki, amikorra a Vizsgal már régen visszatért. Valami másfajta logikát keress az ellenőrzésre. Mondjuk ha formról van szó, akkor eleve állítsd meg a submit-ot, és a Kesz függvényben küldd el ténylegesen.
2

Így lehetetlen. A Vizsgal()

kuka · 2010. Okt. 15. (P), 14.05
Így lehetetlen. A Vizsgal() azonnal befejeződik, a Kesz() pedig valószínűleg még el sem indult.

Ha azt akarod, hogy a Vizsgal() meg tudja mondani, hogy sikeres volt-e a kérés, akkor szinkron kapcsolatot használj, ne aszinkront.
3

Igen, formot ellenőriznék

NZol · 2010. Okt. 15. (P), 14.14
Igen, formot ellenőriznék vele.

<form method='post' action='feldolgoz.php' onSubmit='return Vizsgal()'>
...
</form>

Tudnátok esetleg hasonló jellegű példakóddal segíteni, mert sajnos még nem igazán vagyok ebben a témában otthon.
4

function Vizsgal() {

kuka · 2010. Okt. 15. (P), 14.41
  1. function Vizsgal()  
  2. {  
  3.   req2.open("GET",url+"ellenor.php",false);  
  4.   req2.send(null);  
  5.   return req2.status == 200 && req2.responseText == 'ok';  
  6. }  
5

Köszi

NZol · 2010. Okt. 15. (P), 15.03
Ettől jobb példát nem is kaphattam volna :)
Nagyon szépen köszönöm a segítséget.