SuggestInput aneb našeptávač
- peci1
- Člen | 60
Updatoval jsem addon a ted je kompatibilni s Nette 2.0 (SuggestInput v2.0) i s Nette 2.1 (SuggestInput v2.1).
Vse je na Gitu: https://github.com/…put/releases
Editoval peci1 (13. 2. 2014 22:04)
- dobby
- Člen | 10
@peci1: Prosim Ta, da sa nejako pomocou SuggestInputu
spravit to, aby som mohol nacitat z databazy dvojrozmerne pole
(id=>nazov
), do nasepkavaca by som potom pisal (vyhladaval)
podla pola nazov
a niekde do formulara by to ukladalo
id
? Snazim sa totiz spravit formular, ktory obsahuje nazov firmy,
ale do databazy potrebujem ulozit jej ID z druhej tabulky.. Vedel by si ma
nejako naviest, alebo nejako pomoct?
Vopred velmi pekne dakujem.
Miso
- peci1
- Člen | 60
dobby napsal(a):
@peci1: Prosim Ta, da sa nejako pomocou SuggestInputu spravit to, aby som mohol nacitat z databazy dvojrozmerne pole (
id=>nazov
), do nasepkavaca by som potom pisal (vyhladaval) podla polanazov
a niekde do formulara by to ukladaloid
? Snazim sa totiz spravit formular, ktory obsahuje nazov firmy, ale do databazy potrebujem ulozit jej ID z druhej tabulky.. Vedel by si ma nejako naviest, alebo nejako pomoct?Vopred velmi pekne dakujem.
Miso
Ahoj Miso, takze v podstate chces, aby se choval skoro jako combobox? Nerikam, ze to nejde, ale chtelo by to asi integralnejsi zasah do celeho addonu. Tj. aby naseptavaci JSON neposilal jen stringy, ale i jejich id. A pak je to samozrejme potreba nejak zpracovat (bud pridat jako soucast komponenty <input type=„hidden“>, ve kterem bys drzel ty id, nebo treba vyuzit data- atributy stavajiciho tagu).
Jako takovy workaround me napada pouzit naseptavac tak, jak je, ve verzi, kde kontroluje, aby uzivatel odesilal jen naseptavana data (je to v examples). A potom ve zpracovani formulare muzes pridat budto filtr nebo natvrdo prepsat value te komponenty na to, co vraci model jako id.
Doufam, ze je to pochopitelne :) Kdyby ses rozhodl nepouzit workaround a upravit cely addon, tak forkni a muzeme to potom zapracovat jako novou funkci suggesteru.
- dobby
- Člen | 10
Prave som to spravil :) Sice neviem, ako sa mi to podarilo, ale funguje to.. pracovnu verziu (ja debil som to neforkol z gitu, ale stiahol ako zip :-D ) hadzem na web, tu je linka:
Co som vlastne zmenil?
- presenter – pridal som policko s ID
- SuggestInput.php – pridana premenna
$idField
a metodysetIdField
agetIdField
- DbSuggester.php:
- pridane
protected $idColumn = NULL;
- upraveny konstruktor, doplneny dalsi parameter
- vytvorene metody
setIdColumn
agetIdColumn
- zmenena metoda
getSuggestions
:- pridana podmienka kontroly
idColumn == ''
+ zmenena hlaska v Exception - modifikovany dotaz na databazu (pridany vyber dalsieho stlpca –
idColumn
) - premenna
matches
je array (idColumn=>value
)
- pridana podmienka kontroly
- pridane
- jquery.suggest.js
- riadky 88–91
- riadok 365
- riadok 413 vymeneny za riadok 414
- riadok 421
- riadky 454 – 456
Mne to funguje, dufam, ze bude aj tebe a este raz sa ospravedlnujem za to, ze som to neforkol, ale priznam sa otvorene, ze som nepredpokladal, ze sa mi to podari urobit :-)
- Jan Mikeš
- Člen | 771
dobby napsal(a):
Mne to funguje, dufam, ze bude aj tebe a este raz sa ospravedlnujem za to, ze som to neforkol, ale priznam sa otvorene, ze som nepredpokladal, ze sa mi to podari urobit :-)
Fyi, muzes udelat fork dodatecne a prepsat zdroje klonu tvymi upravenymi zdroji, ve vysledku by mel byt diff uplne stejny ;)
- dobby
- Člen | 10
@Lexi: Ano, uz mi to doslo :-) Pisal som to v noci,
uz som ani nevidel na klavesnicu :-)
Uz je to pridane ako Pull Request, tak dufam, ze @peci1
sa v tom nejako bude vyznat :)
Pre ostatnych, tu je funkcna verzia SuggestInputu, ktory vyhladava podla jedneho stlpca a do druheho formularoveho pola dava hodnotu z ineho stlpca z databazy:
https://github.com/…SuggestInput
Mne to funguje, dufam, ze bude aj vam.. Zatial to neni okomentovane, ale naozaj nebol cas :-)
Editoval dobby (20. 2. 2014 10:58)