Autor Zpráva
Micruss
Profil
Zdravím

mám JSON
{
    "player1": {
        "id": "13",
        "nick": "test",
        "prava": "1",
        "online": "1371982898"
    },
    "player2": {
        "id": "12",
        "nick": "admin",
        "prava": "1",
        "online": "1371982887"
    }
}

Přes $.ajax volám json

<script>
$.ajax({
url: "players.php",
datatype: "json",
success: function ( data ) {
var obj = $.parseJSON(data);
}</script>

a potřeboval bych jak array -> Player1 pošlu do funkce a to samé s Player2, našel jsem různé návody s $.each nebo for(....) ale ty nějak neřeší můj problém, když bych chtěl jen vypsat dejme tomu nick a prava... např.
<script>function info(player) { 
// player předá array(json)
$('#nick').html(player.nick);
$('#prava').html(player.prava);
 } </script>
Radek9
Profil
Micruss:
1) Není to pole, ale prostý JS objekt.
2) Použij for…in cyklus.
Micruss
Profil
Tak objekt... díky zkusím a uvidíme co to udělá
juriad
Profil
obj.each(function(indexHrace, hrac) {
  // toto se zavolá pro každého hráče
  info(hrac);
});

Pokud nejde vždy přesně o dva hráče, ale obecně o skupinu hráčů (může jich být různý počet), změň JSON na:
[
  {
    "id": "13",
    "nick": "test",
    "prava": "1",
    "online": "1371982898"
  },
  {
    "id": "12",
    "nick": "admin",
    "prava": "1",
    "online": "1371982887"
  }
]
Micruss
Profil
Mno dal jsem na radu $.each().. a vypadá to u mě asi takto

var obj = $.parseJSON(data);
$.each(obj, function(key, value) { info(key, value); });
}
function info(key, val) {
$.each(val, function(i, item) {
$('#nick-' + key).append(i + ' - ' + item + '<br>');      
});
 }

Je to jenom stručný výpis např. id - 12... atd... ještě pak zkusím i tu druhou možnost co posílal juriad

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: