Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] .post w tablicy nie aktualizuje stringa
elbroth
post 10.07.2016, 11:06:22
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.04.2016

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


Cześć, mam taki kod, zmienna route powinna być zlepkiem kilku stringów. Co robię źle? Po stronie PHP wszystko działa poprawie, jest zwracany dobry JSON.


[JAVASCRIPT] pobierz, plaintext
  1. $('#getAllBuses').submit(function() { // catch the form's submit event
  2. $.ajax({ // create an AJAX call...
  3. data: $(this).serialize(), // get the form data
  4. type: $(this).attr('method'), // GET or POST
  5. url: $(this).attr('action'), // the file to call
  6. success: function(response) { // on success..
  7. var results = jQuery.parseJSON(response);
  8.  
  9. $('#buses').html("Wszystkie autobusy:");
  10. $(results).each(function(key, value) {
  11. var keyword = value.name;
  12. var route = '';
  13. $.post("app.php?action=getRoute", {city: keyword})
  14. .done(function (data) {
  15. var routes = jQuery.parseJSON(data);
  16. $(routes).each(function (key, value) {
  17. route += value.city;
  18. });
  19. });
  20. $('#buses').append('<p><b>' + value.departure + '</b> - <b>' + value.name +'</b> do <b>' + value.last_stop +'</b> (przez: ' + route + ')').html();
  21.  
  22. });
  23. }
  24. });
  25. return false; // cancel original event to prevent form submitting
  26. });
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
trueblue
post 10.07.2016, 11:16:32
Post #2





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


Używasz zmiennej route zanim została sklejona (sklejana jest w metodzie done).

Ten post edytował trueblue 10.07.2016, 11:16:45


--------------------
Go to the top of the page
+Quote Post
elbroth
post 10.07.2016, 11:21:05
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.04.2016

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


W JS zaczynam dopiero raczkować, więc nie wiem, jak to poprawić. Jeśli usunę deklarację zmiennej z linii 12, dostaję wtedy błąd JS "route is not defined". Tak samo gdy dodam ją między 15 a 16 linią.
Go to the top of the page
+Quote Post
markuz
post 10.07.2016, 11:29:40
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Funkcja w done wykona się PÓŹNIEJ niż $('#buses').append() co za tym idzie, w append wstawiasz route która jest pusta. Wstaw $('#buses').append(...) na końcu w funkcji done();


--------------------
Go to the top of the page
+Quote Post
elbroth
post 10.07.2016, 11:34:23
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.04.2016

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


Okej, poprawione, wszystko działa tak jak powinno.

Dzięki bardzo wink.gif

EDIT - jednak nie do końca tak, jak powinno.

Moje zapytanie wygląda tak:
  1. $sql = "SELECT * FROM `bus` ORDER BY `departure` ASC";


A mimo to wyniki z JS nie sa posortowane, za każdym razem wyświetlają się inaczej, na przykład:
  1. Wszystkie autobusy:
  2. 13:30 - Autobus do Zakopane (przez: Wrocław, Warszawa, Wałbrzych, Gdańsk)
  3.  
  4. 01:23 - PKS do Sanok (przez: Szczecin, Warszawa, Wałbrzych, Gdańsk)
  5.  
  6. 09:44 - Kolejny autobus do Wrocław (przez: Hel, Warszawa, Wałbrzych, Gdańsk)
  7.  
  8. 06:30 - Test do Szczecin (przez: Katowice, Warszawa, Wałbrzych, Gdańsk)
  9.  
  10. 18:33 - Kolejny do Katowice (przez: Sanok, Warszawa, Wałbrzych, Gdańsk)


Ten post edytował elbroth 10.07.2016, 11:51:37
Go to the top of the page
+Quote Post
viking
post 10.07.2016, 12:12:01
Post #6





Grupa: Zarejestrowani
Postów: 6 377
Pomógł: 1116
Dołączył: 30.08.2006

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


A co masz wewnątrz data czyli console.log(data); - dopisane do done?

Przy okazji warto żebyś zrozumiał deferred bo bez tego będzie ciężko. Całkiem fajnie opisane https://medium.freecodecamp.com/javascript-...2573#.v7at80j3k
oraz różnice w jquery 3 w stosunku do poprzednich https://jquery.com/upgrade-guide/3.0/#deferred


--------------------
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 13.06.2025 - 04:30