Nette Form + AJAX Selectbox + Snippet

- Joacim
 - Člen | 229
 
Ahoj,
mám formulář s 2 selectboxy, které jsou na sobě závislé (druhý je zavislý na prvním). Tzn vyberu hodnotu z prvního a AJAXEM se mě dotáhnou hodnoty do druhého. Mám nette 2.3. Výběr a překreslení funguje dobře, bohužel při zmáčknutí submitu se vůbec nedostanu do Succeeded, jen se refreshne stránka. Data z obou formulářů se přes redirect pošlou do URL a poté pokud je URL obsahuje nastaví se jako výchozí v již zminovaných selectboxech.
<div class="col-lg-12">
                            {snippetArea wrapper}
                                <form class="" role="" id="" action="" method="post" n:name="xxxSearchForm">
                                    <input type="hidden" n:name="tab">
                                    <div class="form-group">
                                        <div class="input-group">
                                            <span class="input-group-addon"><i class="glyphicon glyphicon-barcode"></i> {_ xxx}</span>
                                            <div class="icon-addon addon-lg">
                                                <select id="eqp-pre" class="form-control" n:name="eq"></select>
                                            </div>
                                            <span class="input-group-addon">_</span>
                                            <div class="icon-addon addon-lg">
                                                {snippet sufix}
                                                    <select id="" class="form-control" n:name="sufix"></select>
                                                {/snippet}
                                            </div>
                                            <span class="input-group-addon"> </span>
                                            <span class="input-group-btn">
                                                <button class="btn btn-primary wait-search" type="submit" id="btn"><span class="glyphicon glyphicon-search"></span></button>
                                            </span>
                                        </div>
                                    </div>
                                </form>
                            {/snippetArea}
Handle pro AJAX
   public function handleEqpPrefix($eqp) {
        if ($this->isAjax()) {
            $data = $nastenidatsDB;
            $this['xxxSearchForm']['sufix']->setItems($data);
            $this->redrawControl('sufix');
            $this->redrawControl('wrapper');
        }
    }
Succeeded
   public function xxxSearchFormSucceeded(Form $form, $values) {
        try {
            $id = $necozformu;
            $this->redirect(":xxx", array('tab' => $values->tab, 'id' => $id));
        } catch (AuthenticationException $e) {  // Invalid login
            $this->flashMessage($e->getMessage(), "danger");
            $this->redirect(":Home:default");
        }
    }
Pokud jsem nepoužil snippetArea tak jsem vždy dostal chybu end()
expects parameter 1 to be array, null given pro suffix
Nějaké rady či nápady ? Případně řešení které používáte a
funguje ?
Přetane fungovat i JS, který pouštím a je vázán na ID select boxu
Editoval Joacim (5. 6. 2018 13:05)

- Ondřej Kubíček
 - Člen | 494
 
osobně doporučuji využit již hotové řešení, třeba dependent select box https://componette.org/…ntselectbox/

- Joacim
 - Člen | 229
 
Ondřej Kubíček napsal(a):
osobně doporučuji využit již hotové řešení, třeba dependent select box https://componette.org/…ntselectbox/
Nad tím jsem taky uvažoval, ale potřebuji to využít jen na jednom místě a stačilo by mě rozchodit ta moje varianta