Új hozzászólás Aktív témák
-
jeges
senior tag
válasz Brown ügynök #343 üzenetére
a 2. eset egyszerűbb (és tisztább is ha jól értelmezem):
var obj = {...};
for(var i in obj){
var kep = obj[i].kep;
} -
Karma
félisten
válasz Brown ügynök #343 üzenetére
Az első nem valid JSON. A másodikat annyiban módosítanám, hogy a termékeket nem közvetlenül a root objektumba tömném be, hanem tennék egy plusz attribútumot mondjuk "items" néven.
Jeges megoldása sajnos nem működne így, mert az objektum minden attribútumán végigmenne a ciklus, nem csak a számokon.
[ Szerkesztve ]
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
válasz Brown ügynök #343 üzenetére
Igazából csak kiegészíteném a többieket.
Ami a második részben szerepel, nem könnyen bejárható, egyetértek, hogy bővítsd ki plusz egy egyértelmű taggal, ami jelzi, hogy itt mondjuk termékek következnek.Jó csúnyán leegyszerűsítve az, amit most generálsz, azt PHP-oldalon pl. így lehet előállítani (a lényeg szempontjából mindegy, PHP-oldalon mondjuk objektumokként kéred-e le vagy asszociatív tömb formájában; ezenkívül nyilván Te adatbázisból kéred le ezeket, tehát ebből a szempontból eltér a dolog, meg abból is, hogy ott egy normális ciklus formájában adod át az adatokat, de a lényeg érthető):
$products_page = array();
$products_page['page'] = 2;
$products_page['linkoffset'] = 0;
$products_page['maxpage'] = 3;
$products_page[] = array(
'kep' => 'airtokoul.jpg',
'nev' => 'Air Tokoul ',
'marka' => 'Nike',
'regi_ar' => '20000',
'uj_ar' => '18000',
);
$products_page[] = array(
'kep' => 'airtokoul.jpg',
'nev' => 'Air Tokoul ',
'marka' => 'Nike',
'regi_ar' => '20000',
'uj_ar' => '18000',
);
$json_return_value = json_encode($products_page);
echo $json_return_value;Ebből a generált JSON:
{"page":2,"linkoffset":0,"maxpage":3,"0":{"kep":"airtokoul.jpg","nev":"Air Tokoul ","marka":"Nike","regi_ar":"20000","uj_ar":"18000"},"1":{"kep":"airtokoul.jpg","nev":"Air Tokoul ","marka":"Nike","regi_ar":"20000","uj_ar":"18000"}}Na ehelyett a PHP-oldalról előállítható kódot ki kéne egészítened valahogy így (lásd a plusz 'products' indexet):
$products_page = array();
$products_page['page'] = 2;
$products_page['linkoffset'] = 0;
$products_page['maxpage'] = 3;
$products_page['products'][] = array(
'kep' => 'airtokoul.jpg',
'nev' => 'Air Tokoul ',
'marka' => 'Nike',
'regi_ar' => '20000',
'uj_ar' => '18000',
);
$products_page['products'][] = array(
'kep' => 'airtokoul.jpg',
'nev' => 'Air Tokoul ',
'marka' => 'Nike',
'regi_ar' => '20000',
'uj_ar' => '18000',
);
$json_return_value = json_encode($products_page);
echo $json_return_value;Na és ebből a generált JSON már így néz ki:
{"page":2,"linkoffset":0,"maxpage":3,"products":[{"kep":"airtokoul.jpg","nev":"Air Tokoul ","marka":"Nike","regi_ar":"20000","uj_ar":"18000"},{"kep":"airtokoul.jpg","nev":"Air Tokoul ","marka":"Nike","regi_ar":"20000","uj_ar":"18000"}]}Ez utóbbit pedig jQuery-vel - szerintem jól átlátható módon - így tudod bejárni:
$ul_obj = $('<ul>', {
id: 'products-list'
});
for(product_index in data.products){
$li_obj = $('<li>', {'class': 'products-list-element'});
$li_obj.html(
data.products[product_index].nev
);
$li_obj.appendTo($ul_obj);
}
$ul_obj.appendTo('#content-area');Hátha ez így segített valamit.
Kérdezz, ha valami nem tiszta.[ Szerkesztve ]
Sk8erPeter
Új hozzászólás Aktív témák
- Bomba ár! Asus VivoBook X412F - i5-8GEN I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Garancia!
- Bomba ár! HP ProBook 650 G5 - i7-8GEN I 8GB I 256GB SSD I 15,6" FHD I Cam I W11 I Garancia!
- Bomba ár! Lenovo ThinkPad L380 - i5-8GEN I 8GB I 256SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- Bomba ár! Asus VivoBook S410U - i5-8GEN I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Garancia!
- Bomba ár! HP ProBook 450 G3 - i7-6G I 8GB I 256GB SSD I HDMI I 15,6" FHD I Cam I W10 I Gar!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Ozeki Kft.
Város: Debrecen