Keresés

Ú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