Komponenta pro výběr souvisejícího záznamu?
- Fanda
- Člen | 39
Mám agendu zakázek a k zakázce chci vybírat kontakt z databáze. Rád bych našeptávání, takže trochu dynamiky. Protože se ale výběr kontaktu bude opakovat ve více agendách, napovídá to použít komponentu, kterou ve formuláři nějak následně používat. Je toto funkční nette přístup? Půjde to? Díky.
- Marek Šneberger
- Člen | 130
Pokud jsem tě dobře pochopil, tak jsem nedávno dělal něco
podobného.
Použil jsem na to jquery plugin autocomplete. Udělal jsem si akci, do které
přišlo hledané slovo ($query), zeptal jsem se databáze na LIKE $query, a
akce mi vrátila JsonResponse. Určitě to půjde nějak víc cool, ale tohle
bylo na projektu s Nette 0.9 (možná i 0.8) a tak jsem to dál
neřešil :)
- bazo
- Člen | 620
no podedis si text input.
priradis controle classu aku chces, spravis si setter na $suggestCallback, ktory
bude prijimat uz vygenerovany odkaz
v getControl() zapises odkaz do data-callback napriklad.
v js navesis na tvoju classu hoicaky suggest script, ktoremu nastavis pre ajax hodnotu z data-callback atributu.
pouzitie v presenteri by vyzeralo takto:
$form = new Form;
$form->addMySuggestInput(...)->setSuggestCallback($this->link('suggest!'));
...
public function handleSuggest($term)
{
$data = $suggester->find($term);
$response = new JsonResponse($data);
$this->sendResponse($response);
}
staci?
Editoval bazo (15. 4. 2013 19:49)
- xxxmisko
- Člen | 140
@bazo
Tak zrejme nestačí :(
Dediť input box myslíš, že si mám vytvoriť vlastnú triedu, ktorá extenduje Nette\Application\UI\Form a ktorá bude mať public function addMySuggestInput, pričom tam sa vytvorí new Controls\TextInput, ktorý bude mať ako parameter názov classy? Potom by som spustil na tento input funkciu setSuggestCallback, ktorá by nastavila callback na mnou zadanú linku?
tá frontová časť na stránke mi je celkom jasná, ale v nette a formulároch zatiaľ veľmi tápam. Dosť by si mi pomohol, keby som sa dozvedel, ako používať callbacky atď. Budem teraz robiť jeden formulár, ktorý sa bude dynamicky vykresľovať a budem tam potrebovať veľa infošiek. Totiž v dokumentácii som sa k mojim otázkam moc nedočítal.
Ďakujem za každé nasmerovanie, poprípade priamu pomoc.