NasExt / SuggestionInput – Našeptaváč
- duskohu
- Člen | 778
Zdravím
Urobil som formulárovú komponentu SuggestionInput.
Viem že takýchto komponent je už dosť, táto implementácia mi celkom
vyhovuje, možno niekto bude zdielať rovnaký názor a použije ju.
Rozšírenie nájdete na Githube doplnené o dokumentáciu,
odporúčam inštaláciu cez composer.
- podporuje nastavenie počtu prvkov v zozname našepkávača
- nastavenie po koľkých písmenách má začať našeptávať (startSuggest)
- časovú odozvu našeptávača(suggestTimeout)
- možnosť nastaviť odlišný text v zozname našeptávača a text ktorý po zvolení vloží do inputu
- duskohu
- Člen | 778
Nevim ci uplne rozumiem, $form->getValues() vracia len jednu hodnotu, ale pokial by si chcel napr v zozname ktore ti suggestionInpit zobrazovat id usera a jeho cele meno, ale po vybere chces aby ti do inputu vlozilo iba id. Napr. toto bude zobrazovat „0::Value1“, ale po vybere do inputu vlozi „0“
$data = array(
'Value1',
'Value2',
'Value3',
'Value4',
'Value5',
'Other Value1',
'Other Value2',
'Other Value3',
'Other Value4'
);
$form->addSuggestionInput("item", "Name")
->setAttribute('autocomplete', 'off')
->setSuggestCallback(function ($filter, $count, SuggestionData $suggestionData) use ($data) {
foreach ($data as $id=>$value) {
$name = $id . '::' . $value;
$suggestionData->setRecord($value, $name);
}
return $suggestionData;
});
inak vies pouzit klasicky variant:
$data = array(
'Value1',
'Value2',
'Value3',
'Value4',
'Value5',
'Other Value1',
'Other Value2',
'Other Value3',
'Other Value4'
);
$form->addSuggestionInput("productId", "Name", 5)
->setAttribute('autocomplete', 'off')
->setSuggestCallback(function ($filter, $count, SuggestionData $suggestionData) use ($data) {
$suggestionData->setData($data);
return $suggestionData;
});
Editoval duskohu (18. 12. 2013 21:59)
- akadlec
- Člen | 1326
No mě spíš zajímalo to co to napoví, tj. po doběhnutí ajaxu se mě vyroluje nabídka kde bude avatar, jméno a login a já pak na jednoho kliknu a v nějakém hidden poli bude uloženo třeba id daného usera, nebo login.
No ale asi zůstanu u typeahead. V inputu si vytvořím data atribut s handle co mě zpracuje sugesci.
- duskohu
- Člen | 778
No da sa ovplivnit co sa ti bude zobrazovat v ponuke suggestion inputu napr vies tam vlozit aj obrazok, alebo akykolvek HTML kod:
$data = array(
'Value1',
'Value2',
'Value3',
'Value4',
'Value5',
'Other Value1',
'Other Value2',
'Other Value3',
'Other Value4'
);
$form->addSuggestionInput("item", "Name")
->setAttribute('autocomplete', 'off')
->setSuggestCallback(function ($filter, $count, SuggestionData $suggestionData) use ($data) {
foreach ($data as $id=>$value) {
$avatar = '<img src="avatar.jpg" height="10" width="10"> '.$name;
$suggestionData->setRecord($value, $avatar);
}
return $suggestionData;
});
Editoval duskohu (19. 12. 2013 13:17)