Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> JSON, jQuery, Operacje
ensei
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 30.04.2008

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


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).

Ten post edytował ensei 30.11.2012, 07:49:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
toffiak
post
Post #2





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


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. });


Ten post edytował toffiak 30.11.2012, 09:40:00


--------------------
Go to the top of the page
+Quote Post
ensei
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 30.04.2008

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


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?
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 Aktualny czas: 19.08.2025 - 18:32