Autor Zpráva
tomas
Profil *
Dobry den,
prosim o pomoc s nasledujici zalezitosti.

mam List<Person> a potreboval bych jej nejak dynamicky pomoci jQuery priradit k selectu.

dekuji za kazde rady.
Molda
Profil
Můžeš nějak blíž specifikovat co znamená List<Person>
tomas
Profil *
jasny

pomoci Json jsem si stahnul List<Person>.
"listPerson":[{"name":"aaaa","login":"aaaaa","rating":"**"},{"name":"bbb","login":"bbbb","rating":"**"}]
a nyni bych jej potreboval umistit pomoci jQuery do selectu, ale naprosto mi to nejde.

pouzivam Framework Struts2

<s:select list="personList" listKey="login" listValue="name" name="name" ...... />

existuje plugin struts2-jquery, na jehoz strankach je i vzorovy priklad, ovsem at sem hledal ve zdrojacich jak jsem chtel nemoh jsem tam to plneni selectu najit.

zde je vzor: http://www.weinfreund.de/struts2-jquery-showcase/index.action >> AJAX Forms >> (double select)
Molda
Profil
moc nerozumím jak to myslíš


v jQuery to je nejak takhle
$.getJSON("url_odkud_stahnes_data",
        function(data){
          $.each(data.items, function(i,item){
            
            a tady máš ke každý položce přístup item.name , item.login , item.rating
            
          });
        });

takže třeba jestli máš

listPerson":[{"name":"aaaa","login":"aaaaa","rating":"**"},{"name":"bbb","login":"bbbbb","rating":"**"}]

tak potom tohle

$('<img />').attr({src: item.name, title: item.login, alt: item.rating});

ti vypíše

<img src="aaaa" title="aaaaa" alt="**" />
<img src="bbb" title="bbbbb" alt="**" />

otázka kde přesně chceš ty hodnoty mít

nevim jestli sem ti pomohl v tomu frameworku nedělám
tomas
Profil *
zkratka tim listPeron chci naplnit atribut list u selectu.

zkousel jsem $('#idSelect').attr('list',data.listPerson); ,ale taky nefrci :( uz opravdu nevim jak to zprovoznit :)
Molda
Profil
potom teda nejak takhle

$.getJSON("url_odkud_stahnes_data",
function(data){
$('#idSelect').attr('list',data);
});

akorat si nejsem jistej jestli data neni náhodou pole tudíž si nemyslí že ti to spolkne

a tady mě napadá nemůžeš ty data přijmout jako string

potom by to bylo

$.get("url_odkud_stahnes_data", function(data){
$('#idSelect').attr('list', data);
});

ale podle tech stranek tam na to maj jinou metodu

languageList.add("Java");
languageList.add("PHP");
languageList.add("C#");

bohužel ted na to nemám čas až v sobotu
ah01
Profil
tomas:
1) mícháš jablka s hruškama. Prezentační vrstva Strutsu je postavená nad JSP. Ten tag <s:select /> se na serveru překládá na HTML, takže k němu nemůžeš přistupovat přes jQuery na klientské straně.

To je absolutně zásadní znalost. Pokud si toto nechápeš, nejsem si jistý, jestli bys měl používat takovéhle high-level technologie jako je Struts.

2) ta knihovna pro Struts (struts2-jquery), kterou používáš, jsou zjevně serverové komponenty, které se na klinta renderují pomocí jQuery UI. Tedy nemůžeš si na klientovi jen tak něco řešit v JS pomocí jQuery (viz bod 1).

Navíc <s:select /> je z taglib /struts-tags, která s tou jQuery UI nadstavbou nemá nic společného, takže mi není jasné, jak si představuješ, že by to mohlo/mělo fungovat?

PS: To že používáš Struts a že to List<Person> je generická kolekce z Javy jsi měl zmínit hned ze začátku, na foru, které se Javou nezabývá, to totiž nemusí být na první pohled patrné. Molda se ti tu pak pokouší pomoct s jQuery, ačkoli je to absolutní nesmysl.
tomas
Profil *
omlouvam se, neuvedomil jsem si bod 1.

kazdopadne vam DEKUJU za rady uz je vyreseno.

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: