Autocomplete jako u založení téma v nette forum
- Jan Kostohryz
- Člen | 14
Zdravím,
chtěl bych vytvořit v mé aplikaci podobný autocomplete jako je tady
v nette forum když chci založit nové téma.
Existuje někde nějaký ukázkový kód a je to v nette? Připadám si hrozně
zmatený a potřeboval bych se od něčeho odpíchnout.
Předem děkuji.
- Pavel Kravčík
- Člen | 1196
Najdi si nějaký JS doplněk (např.) a pak si jen uprav volání na nějakou nette akci, která bude vracet data do JS. Například přes NAJA.
Případně se můžeš podívat na componette
Od toho se dá odpíchnout. :)
Editoval Pavel Kravčík (27. 10. 2021 12:44)
- Jan Kostohryz
- Člen | 14
Děkuji,
jen jestli byste mi ještě poradil jak vypsat $query. Dělám to podle toho
ukázkového kódu.
public function create()
{
$form = $this->formFactory->create();
$selectItems = $this->databaseFunctions->getCategoriesAssoc();
$query = $this->databaseFunctions->getGames();
$form->addHidden('game_id');
$form->addAutocomplete('game_title', 'název hry:', function (string $query) {
echo $query;
})->setAutocompleteMinLength(3);
//$form->addText('game_title', 'název hry:')->setRequired();
//$form->addText('category_url', 'url adresa kategorie hry');
$form->addText('game_url', 'url hry:')->setRequired()->addRule($form::PATTERN, 'url adresu zadejte bez mezer a interpunkce prosím', '[a-z]');
$form->addText('game_text', 'pravidla hry:')->setRequired();
$form->addText('game_description', 'popis hry:')->setRequired();
$form->addSelect('category_id', 'kategorie:', $selectItems);
$form->onSuccess['save'] = [$this, 'save'];
return $form;
}
- Jan Kostohryz
- Člen | 14
Bohužel mi to nefunguje.
Ukázal byste mi prosím nějaký příklad?
Nebo to napsat nějak pomocí naja?
Pořád jsem hrozně zamatený.
Editoval Jan Kostohryz (28. 10. 2021 18:14)
- Mysteria
- Člen | 797
Nefunguje znamená co? Nějaká chyba? Jinak už jenom od pohledu je určitě špatně tohle:
$form->addAutocomplete('game_title', 'název hry:', function (string $query) {
echo $query;
})->setAutocompleteMinLength(3);
Místo echo $query musíš vrátit pole s výsledkama, který odpovídají tomu, co uživatel zadal do inputu (což je uloženo v tom $query parameteru).
A pokud ti nefunguje FE část, tak nezapomeň, že musíš nainstalovat k tomu i ten JavaScript, jak je dole zmíněno v návodu.
- Miroslav12
- Člen | 1
Mysteria napsal(a):
Nefunguje znamená co? Nějaká chyba? Jinak už jenom od pohledu je určitě špatně tohle:
$form->addAutocomplete('game_title', 'název hry:', function (string $query) { echo $query; })->setAutocompleteMinLength(3);
Místo echo $query musíš vrátit pole s výsledkama, který odpovídají tomu, co uživatel zadal do inputu (což je uloženo v tom $query parameteru).
A pokud ti nefunguje FE část, tak nezapomeň, že musíš nainstalovat k tomu i ten JavaScript, jak je dole zmíněno v návodu.
Různé programovací jazyky a rámce mají různé metody vytváření automatického vyplňování. Například vývojáři webových stránek mohou k vytvoření automatického vyplňování na straně klienta použít JavaScript a knihovny, jako je jQuery nebo React. Vývojáři Pythonu mohou k vytvoření části automatického vyplňování na straně serveru použít knihovny, jako je Flask nebo Django. Obecně lze říci, že vytvoření automatického vyplňování je proces, který vyžaduje určité znalosti a programátorské dovednosti. Podobnou práci jsem viděl na stránkách world-casino-cs.com. Pokud však rozumíte konceptu automatického vyplňování a víte, jak pracovat s vaším programovacím jazykem a frameworkem, můžete tuto funkci snadno implementovat do své aplikace.
Editoval Miroslav12 (27. 3. 2023 0:00)
- BenjaminButler
- Člen | 1
Automatické doplňování obvykle funguje tak, že analyzuje znaky nebo slova, která uživatel zadal nebo zadává, a poté poskytne seznam navrhovaných slov nebo frází, které se uživatel může pokusit zadat. Tyto návrhy jsou založeny na různých faktorech, jako je četnost použití, předchozí psaní, kontextová relevance a často používané fráze. Hlavním účelem automatického dokončování je zlepšit uživatelský komfort tím, že se zrychlí zadávání textu a sníží se počet chyb. Poprvé jsem jej použil při návštěvě stránky https://mostbet-prihlaseni.cz/. Jak se ukázalo, skutečně dokáže ušetřit čas tím, že předpovídá a navrhuje slova nebo fráze, které uživatel pravděpodobně zadá, čímž zefektivňuje zadávání textu.
Editoval BenjaminButler (19. 4. 2023 18:50)