Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JQuery][Ajax] Wyciągnięcie wartości zmiennej poza funkcję
reyne
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 1
Dołączył: 19.12.2007

Ostrzeżenie: (0%)
-----


Witam (IMG:style_emoticons/default/smile.gif) ,

posiadam kod JavaScript Jquery:
- kod ładuje zawartość pliku loadFlag.php, w tym wypadku zawiera on wartość sesji;
  1. var chk;
  2. function checkFlag() {
  3. $.ajax({
  4. type: "GET",
  5. url: "data/loadFlag.php",
  6. data: { flag_show: 1 },
  7. success: function(data){
  8. chk = html(data);
  9. }
  10.  
  11. });
  12. return chk;
  13. }
  14. var wynik = checkFlag();
  15. alert(wynik)
  16.  


oraz plik PHP (loadFlag.php):
-plik wyświetla zawartość sesji o nazwie flag
  1. <?php
  2.  
  3. require_once '../core/functions.core.php'; // plik z roznymi funkcjami
  4.  
  5. if($_GET['flag_show'] == "1") {
  6.  
  7. echo $_SESSION['flag'];
  8.  
  9. }
  10.  
  11. ?>


Chciałbym wydostać wynik zapytania z funkcji checkFlag() poza obszar funkcji, niestety zmienna wynik zwraca wartość undefined, jak zrobić to poprawnie?

Ten post edytował reyne 16.11.2012, 10:16:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


AJAX jest wykonywany asynchronicznie w Twoim przypadku co oznacza, że wynik funkcji w "success" nie jest przekazany od razu a dopiero po otrzymaniu odpowiedzi z serwera. Opcje są dwie. Albo zmień tryb AJAX na synchroniczny i powinno działać albo wykorzystaj funkcję w "success" i w niej obrób te dane które dostajesz.

Opcja 1:

[JAVASCRIPT] pobierz, plaintext
  1. var chk;
  2. function checkFlag() {
  3. $.ajax({
  4. type: "GET",
  5. url: "data/loadFlag.php",
  6. async: false, // tu zmieniamy żeby działało w trybie synchronicznym
  7. data: { flag_show: 1 },
  8. success: function(data){
  9. chk = html(data);
  10. }
  11.  
  12. });
  13. return chk;
  14. }
  15. var wynik = checkFlag();
  16. alert(wynik)
[JAVASCRIPT] pobierz, plaintext


Opcja 2:

[JAVASCRIPT] pobierz, plaintext
  1. function checkFlag() {
  2. $.ajax({
  3. type: "GET",
  4. url: "data/loadFlag.php",
  5. data: { flag_show: 1 },
  6. success: function(data){
  7. alert(html(data));
  8. }
  9.  
  10. });
  11. }
  12. checkFlag();
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
reyne
post
Post #3





Grupa: Zarejestrowani
Postów: 73
Pomógł: 1
Dołączył: 19.12.2007

Ostrzeżenie: (0%)
-----


Skorzystałem z 1 opcji, działa dzięki (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:40