Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jquery ajax i odwrotne json
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Hejka, mam taki kod js:
Kod
$.ajax({
  url: 'testjs.php',
dataType : 'json',
  success: function( data ) {
for (var i in data) alert(i);
  }
});

Kod ten pobiera ajaxem dane z testjs.php w formacie json, a następnie wyświetla w ten sposób uzyskane dane

testjs.php:
  1. <?php
  2. $ar = array(3=>'bla',2=>'ola',1=>'costam');
  3. echo json_encode($ar);
  4. ?>

Jak widzicie, skrypt generuje tablice o indeksach w kolejności 3,2,1.
Niestety przeglądarka Chrome oraz Opera przy konwersji json, sortuje dane i są one już w kolejności 1,2,3
Firefox nie sortuje danych.

Oczywiście zależy mi, by dane w JSON w przeglądarce były w takiej kolejności, w jakiej je zapodaje. Czy to bug przeglądarek, czy normalne zachowanie dla JSON i muszę inaczej to obejść?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





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




Dla JSON-a nie sądzę. Dla chrome i opery jak widać tak.
Nie da się tego obejść. To po prostu element głupoty przeglądarek. W skrócie - witaj w świecie śmieciowego JS.

Albo pobawisz się w coś takiego...
  1. $jsonArr = array(
  2. array('key' => 3, 'value' => 'bla')
  3. ....
  4. );

albo zamiast obiektu użyjesz tablicy - niestety stracisz klucze
  1. $jsonArr = array('bla', 'ola', 'costam');
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 06:47