[prototype] Wyswietlanie danych JSON

2012-02-18 13:53:16 Post #1 jarexx

 
Witam,
Na poczatek chcialbym przeprosic za brak polskich ogonkow.
Mam problem z parsowaniem danych JSON pobranych Ajaxem.
Struktura pobranych danych jak ponizej
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
   "wartosc_netto_total":"90.00",
   "kwota_vat_total":"0.00",
   "wartosc_brutto_total":"90.00",
   "items":[
      {
         "wartosc_netto":"45",
         "kwota_vat":"0",
         "wartosc_brutto":"45"
      },
      {
         "wartosc_netto":"45",
         "kwota_vat":"0",
         "wartosc_brutto":"45"
      }

   ]
}

Mam problem z wyswietleniem petla zawartosci "items" i prosze o pomoc, bo mi skonczyly sie pomysly i umiejetnosci
Ponizej moja funkcja
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function recalculate_items()
{
    
       new Ajax.Request('plik.php', {postBody: Form.serialize('createInvoice'), onComplete: function(transport){
    
        data = transport.responseText.evalJSON();
        var items = data.items;
        
                //pobieranie wartosci glownych kluczy nie przysparza problemu
        $('wartosc_netto_total').value = data.wartosc_netto_total;
        $('kwota_vat_total').value = data.kwota_vat_total
        $('wartosc_brutto_total').value = data.wartosc_brutto_total;
        
        
         Brak pomyslu na petle, bo items to chyba obiekt
         Ponizsze nie dziala
          for (var i=1;  i <= items.length; i++)
          {
            alert(items[i].kwota_vat);
          }
    }})
}

Prosze o pomoc.

2012-02-18 14:03:14 Post #2 nospor

 
zakladam, ze uzywasz FIreBug. Dodam do kodu coś, co wyświetla się w firebug.
Jak nie masz go to go zainstaluj. Jest to plugin do FireFoxa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function recalculate_items() 

     
       new Ajax.Request('plik.php', {postBody: Form.serialize('createInvoice'), onComplete: function(transport){ 
console.log(transport.responseText);      //CO TO ZWRACA?
        data = transport.responseText.evalJSON(); 
console.log(data); //CO TO ZWRACA?
        var items = data.items; 
         
                //pobieranie wartosci glownych kluczy nie przysparza problemu 
        $('wartosc_netto_total').value = data.wartosc_netto_total; 
        $('kwota_vat_total').value = data.kwota_vat_total;  
        $('wartosc_brutto_total').value = data.wartosc_brutto_total; 
         
         
//A TU POPRAWKA NA PETLE
          for (var i in items) 
          { 
            alert(items[i].kwota_vat); 
          } 
    }})

2012-02-18 16:59:42 Post #3 jarexx

 
Zainstalowalem firebuga.
Logi ktore zasugerowales zwracaja odp. dane json.
Moze to pomoze?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
wartosc_netto_total "168.00"
kwota_vat_total "13.44"
wartosc_brutto_total "181.44"
    
items
    [Object { wartosc_netto="168", kwota_vat="13.44", wartosc_brutto="181.44"}]
    
0
    Object { wartosc_netto="168", kwota_vat="13.44", wartosc_brutto="181.44"}
    
        wartosc_netto "168"
        kwota_vat "13.44"
        wartosc_brutto "181.44"


Edit:
Pokombinowalem z ta twoja petla i dziala
Dzieki za pomoc.

Odpowiedz