AJAX vyvolaný změnou selectu nepřekresluje snippet

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
igor.pocta
Člen | 100
+
0
-

Ahoj,

mám tu menší problém :) Nepřekresluje se mi snippet i když je v odpovědi. :/

Představte si tabulku, v jednom sloupci je stav. Každý řádek v tomto sloupci má SELECT na výběr 0–100% po 10. Celá tabulka je obalená do snippetu todolistTable. V layoutu mám zase snippet flashes.

Pak mám skriptík na změnu stavu po změně pole, který zavolá signál s parametry a podle něj se nastaví nový stav. Tahle logika funguje.

<script>
    $(document).ready(function () {
        $(".change-status").change(function(event) {
            var item_id = $(this).attr("data-item_id");
            var new_status = $(this).val();
            $.ajax ({
                url: {link changeStatus!},
                data: {"status": new_status, "item_id": item_id},
                type: 'get',
                dataType:'json'
            });
        });
    });
    </script>

V presenteru mám signál takto:

public function handleChangeStatus($item_id, $status)
    {
        $this->service->setNewStatus($item_id, $status);
        if ($this->isAjax()) {
            $this->flashMessage("Nový stav úkolu: " . $status . "% byl nastaven");
            $this->redrawControl();
        } else  {
            redirect("this");
        }
    }

Jako parametr v redrawControl jsem zkoušel jak flashes, tak todolistTable, tak jej zkouším nechat prázdný. Ve všech případech se pošle v odpovědi serveru snippet v JSON ale už se mi nepřekreslí fragmenty stránky.

Můžete prosím pomoci ? Knihovnu nette.ajax.js mám a když to zkouším na komponenty (podle článku Dynamické snippety na planette), tak to funguje.

David Matějka
Moderator | 6445
+
+3
-

volej pomoci $.nette.ajax({...})

igor.pocta
Člen | 100
+
0
-

David Matějka napsal(a):

volej pomoci $.nette.ajax({...})

Děkuji Davide, to pomohlo :))