Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja zwraca undefinied
Wielebny.pl
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 1.06.2010

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


Moja funkcja zwraca zawsze undefinied nawet jeśli return dam za nawiasami od warunku if(XMLHttpRequestObject). W środku jest Alert który zwraca prawidłową wartość danych odebranych z php (w tym przypadku zawsze są liczbami) zaś funkcja zwraca nic (undefinied). Początkowo myślałem iż dane odebrane z php są ciągiem znaków ale zastosowanie parseInt(str); nic nie poprawiło.Co jest tego przyczyną złego działania ?

  1. function import_file_size()
  2. {
  3. var odpowiedz;
  4. if(XMLHttpRequestObject)
  5. {
  6. XMLHttpRequestObject.open("POST", "./upload_file/funkcje_dla_ajax.php");
  7. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  8. XMLHttpRequestObject.onreadystatechange = function()
  9. {
  10. if (XMLHttpRequestObject.readyState == 4 )
  11. {
  12. if(XMLHttpRequestObject.status == 200)
  13. {
  14. odpowiedz = XMLHttpRequestObject.responseText;
  15. odpowiedz = unescape(odpowiedz);
  16. alert(odpowiedz);
  17. //odpowiedz = parseInt(str);
  18. return odpowiedz;
  19.  
  20. }
  21. }
  22. }
  23. wysylka = 'tresc';
  24. wysylka = escape(wysylka);
  25. XMLHttpRequestObject.send("tresc=" + wysylka);
  26. }
  27.  
  28. }
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://forum.php.pl/index.php?showtopic=126290&hl=ajax
Go to the top of the page
+Quote Post
Wielebny.pl
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 1.06.2010

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


W linku który podałeś jest problem który mnie dotyczy aczkolwiek składnia kodu jest zupełnie inna niż u mnie co za tym idzie nie wiem jak zastosować return przy on success (IMG:style_emoticons/default/sadsmiley02.gif) . Opisujesz tam też ,że można spróbować wysłać dane synchronicznie ale nie jest to zalecane. W pierwszym przypadku poległem wiec postanowiłem tego spróbować aczkolwiek wynik jest taki sam czyli następna funkcja która odbiera dane z return wskazuje na UNDEFINIED.

mój kod po zmianach :
  1. function import_file_size()
  2. {
  3. var odpowiedz="";
  4.  
  5. if(XMLHttpRequestObject)
  6. {
  7. XMLHttpRequestObject.open("POST", "./upload_file/funkcje_dla_ajax.php",false);
  8.  
  9. var wysylka = 'tresc';
  10. wysylka = escape(wysylka);
  11. XMLHttpRequestObject.send("tresc=" + wysylka);
  12.  
  13. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  14. XMLHttpRequestObject.onreadystatechange = function()
  15. {
  16. if(XMLHttpRequestObject.status == 200)
  17. {
  18. odpowiedz = XMLHttpRequestObject.responseText;
  19. odpowiedz = unescape(odpowiedz);
  20. return odpowiedz;
  21. }
  22. }
  23. }
  24.  
  25. }


proszę o pomoc w tej sprawie.

ps.
Wątek jest w złym dziale.

Ten post edytował Wielebny.pl 22.06.2010, 18:27:29
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Odpowiedz jest ta sama. Musisz pobierac dane w trybie synchronicznym aby funkcja która wywołuje żądanie ajax, mogła zwrócić z tegoż żądania wynik.
OnSuccess to twoje onreadystatechange ze sprawdzeniem kodu odpowiedzi.
Go to the top of the page
+Quote Post
Wielebny.pl
post
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 1.06.2010

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


Rozwiązaniem jest CAŁKOWICE USNIĘCIE sprawdzania kodu odpowiedzi czyli tylko normalny kod strukturalny.


  1. XMLHttpRequestObject = new getXMLHttpRequestObject();
  2. var odpowiedz = "";
  3. var tresc = 'tresc=tresc';
  4. if(XMLHttpRequestObject)
  5. {
  6. XMLHttpRequestObject.open("POST", "./upload_file/funkcje_dla_ajax.php",false);
  7. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  8. XMLHttpRequestObject.send(tresc);
  9.  
  10. odpowiedz = XMLHttpRequestObject.responseText;
  11. return odpowiedz;
  12. }
  13. else
  14. alert('cos nie dziala');


Ten post edytował Wielebny.pl 23.06.2010, 19:13:31
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: 14.09.2025 - 19:56