Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JSON, jQuery, Operacje
Forum PHP.pl > Forum > XML, AJAX
ensei
Mam taki kod json: http://jsfiddle.net/jRaLT/


Chciałbym przetworzyć ją w jQuery. wrzucić to co mi niezbędne do tablic. I te tablice znowu przetworzyć.
Mam taki kod:

  1. <script>
  2. player1 = [];
  3.  
  4.  
  5. $.getJSON('test.php', function(data) {
  6.  
  7. alert('1st');
  8. $.each(data, function(i) {
  9. if(jQuery.inArray(this.PLAYER1, player1)==-1)
  10. {
  11. player1[i] = this.PLAYER1;
  12. alert();
  13. }
  14.  
  15. $('<div></div>').hide()
  16. .append(this.PLAYER1)
  17. .appendTo('#fight')
  18. .delay(800 + 1000 * i)
  19. .fadeIn();
  20. });
  21. });
  22. alert(player1.length);
  23. </script>


Ale on zwraca najpierw player1 .length a później dopiero przetwarza JSON. Jak zrobić żeby najpierw przetwarzał JSON, wrzucił do tablicy player przetworzenie i dopiero na końcu wyświetliło się ile jest wpisów w nowej tablicy(umożliwiając przy tym jej przetworzenie).
toffiak
Wielkość player1 możesz dopiero uzyskać po przetworzeniu odpowiedzi z test.php, więc umieść wyświetlanie na końcy funkcji zwrotnej.

  1. player1 = [];
  2. $.getJSON('test.php', function(data) {
  3. alert('1st');
  4. $.each(data, function(i) {
  5. if(jQuery.inArray(this.PLAYER1, player1)==-1){
  6. player1[i] = this.PLAYER1;
  7. alert();
  8. }
  9. $('<div></div>').hide().append(this.PLAYER1).appendTo('#fight').delay(800 + 1000 * i).fadeIn();
  10. });
  11. alert(player1.length);
  12. });
ensei
hmm, dzięki.
Mam teraz taki kod:
  1. <script>
  2. player1 = [];
  3. player1_round = [];
  4. Count = 0;
  5. $.getJSON('test.php', function(data) {
  6. $.each(data, function(i) {
  7. if(jQuery.inArray(this.PLAYER1, player1)==-1){
  8. player1[Count] = this.PLAYER1;
  9. player1_round[Count] = i;
  10. Count++;
  11. }
  12. $('<div></div>').hide().append(this.PLAYER1).appendTo('#fight').delay(800 + 1000 * i).fadeIn();
  13. });
  14. for(var a =0; a<player1.length; a++)
  15. {
  16. setTimeout(function() {
  17. $("#player1").html('qq'+player1[a-1]);
  18. }, 800 + 1000 * player1_round[a]);
  19. alert(player1_round[a] + player1[a]);
  20. }
  21. });
  22. </script>


W div player pokazuje ostatni element z tablicy player1, zawsze. A chciałbym żeby zmieniało się dynamicznie zgodnie z wartościami z alert. Już kombinowałem z tym trochę, dlatego się zwracam do Was. Wydaje mi się, że będę musiał json_decode w php użyć a w jquery tylko pętle, pętle, pętle. Jak myślicie?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.