Autor Zpráva
Micruss
Profil
Zdravím

mám JSON
1{
2    "player1": {
3        "id": "13",
4        "nick": "test",
5        "prava": "1",
6        "online": "1371982898"
7    },
8    "player2": {
9        "id": "12",
10        "nick": "admin",
11        "prava": "1",
12        "online": "1371982887"
13    }
14}
{
    "player1": {
        "id": "13",
        "nick": "test",
        "prava": "1",
        "online": "1371982898"
    },
    "player2": {
        "id": "12",
        "nick": "admin",
        "prava": "1",
        "online": "1371982887"
    }
}

Přes $.ajax volám json

1<script>
2$.ajax({
3url: "players.php",
4datatype: "json",
5success: function ( data ) {
6var obj = $.parseJSON(data);
7}</script>
<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ř.
1<script>function info(player) { 
2// player předá array(json)
3$('#nick').html(player.nick);
4$('#prava').html(player.prava);
5 } </script>
<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
1obj.each(function(indexHrace, hrac) {
2  // toto se zavolá pro každého hráče
3  info(hrac);
4});
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:
1[
2  {
3    "id": "13",
4    "nick": "test",
5    "prava": "1",
6    "online": "1371982898"
7  },
8  {
9    "id": "12",
10    "nick": "admin",
11    "prava": "1",
12    "online": "1371982887"
13  }
14]
[
  {
    "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); });
}
var obj = $.parseJSON(data);
$.each(obj, function(key, value) { info(key, value); });
}
1function info(key, val) {
2$.each(val, function(i, item) {
3$('#nick-' + key).append(i + ' - ' + item + '<br>');      
4});
5 }
function info(key, val) {
$.each(val, function(i, item{
$('#nick-' + key).append(+ ' - ' + 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
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0