Autocomplete jako u založení téma v nette forum

Jan Kostohryz
Člen | 14
+
0
-

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 | 1182
+
0
-

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
+
0
-

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;

    }
Pavel Kravčík
Člen | 1182
+
0
-
bdump($query);
Jan Kostohryz
Člen | 14
+
0
-

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
+
0
-

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
+
-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
+
0
-

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)