Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ajax] Jak przekazać zmienną "w górę" z Ajax.Request
qBK
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 9.01.2007
Skąd: Wrocław

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


Witam, od niedawna bawię się ajaksem i mam następujący problem:
  1. <?php
  2. function getValue(id, mode)
  3. {
  4. var url = 'http://server/x.php';
  5. var pars = 'mode='+mode+'&id=' + id;
  6.  
  7. var output = '';
  8.  
  9. var myAjax = new Ajax.Request(
  10. url,
  11. {
  12. method: 'get',
  13. parameters: pars,
  14. onComplete: function(originalRequest) {
  15. // ten output ma iść "na zewnątrz"
  16. output = originalRequest.responseText;
  17. }
  18. }
  19. );
  20. return output;
  21. }
  22. ?>


Chodzi mi o to, żeby w linijce 16. wyeksportować jakoś zmienną output żebym mógł ją zwrócić w 20. Dodam że korzystam z prototype jeśli to ważne.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
paziek
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

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


uh.. asynchronicznie to nie bardzo

Musisz przekazać tą zmienną w onComplete: function(originalRequest) {, czyli tam gdzie ją dostajesz. W sensie - dostałem zmienną, teraz ją użyje! Wywołam sobie funkcje itp. która ją potrzebują właśnie tutaj.

Inaczej możesz zrobić to tak, że zadeklarujesz tą zmienną globalnie (przed tą funkcją getValue() ) i w funkcj, która ma z niej korzystać będziesz sprawdzał czy ta zmienna już jest dostępna za pomocą window.setInterval() ... ale to nie ma dla mnie sensu, skoro możesz mieć podobny efekt robiąc to co napisałem wyżej.

Jest też trzecia metoda - pobieranie AJAX synchroniczny. Wtedy wykonywanie JS się zablokuje do czasu aż pobierze te dane.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 17:30