Nefunkční překreslení při volání nette ajax

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

Zdravím, možná něco dělám špatně, ale neuvědomuji si co, potřeboval bych tedy radu.

Mám select input

<select name="partner_id[]" id="frm-userForm-partner_id"
        class="js-numbers-partner form-control ajax">
    <option value="">Vyberte partnera</option>
    {foreach $partnerList as $key => $partner}
        <option value="{$key}">{$partner}</option>
    {/foreach}
</select>

na který je navedený on change event

<script>
        $(document).on('change', '.js-numbers-partner', function () {
            var select = $(this);
            $.nette.ajax({ // Zkoušel jsem i $.get, $.ajax, $.getJSON
                type: 'GET',
                url: {link loadNumbers!},
                data: { 'partnerId': $(this).val() },
                success: function (payload) {
		}};
	});
</script>

A samotný handler

<?php
    public function handleLoadNumbers($partnerId)
    {
        if ( ! $partnerId || $partnerId == '')
            return false;

        $partner = $this->partnersRepository->find($partnerId);

	...

        unset($this->template->partnerList[$partnerId]);
        $this->redrawControl('numbersContent');
        $this->sendJson($this->payload->partner);
    }
?>

A celý formulář obalený snippetem numbersContent. Payload se správně odešle a obsah šablonové proměnné partnerList se správně upraví, ale redrawControl už nic neudělá a nepřekreslí se. Záměr je ze select inputu odstranit již vybranou položku, protože hned dále je další button, který část se selectem zduplikuje.

Když dám unset a redraw do samostatného handleru, ten zavolám klasickým a hrefem, tak se obsah proměnné správně upravý a hlavně se snippet překreslí.

Prosil bych radu, co může být špatně? Děkuji mnohokrát

Nette 2.2.2 (2014–06–26)
jQuery 1.8.3
Nette.ajax 1.2.2
Vše načítáno ve správném pořadí

David Matějka
Moderator | 6445
+
0
-

smaz radek $this->sendJson($this->payload->partner); – ten totiz ukonci beh presenteru a ani nedojde k provedeni sablony (a tedy k prekresleni snippetu)

JanDominik
Člen | 2
+
0
-

Ah, díky.. zapomněl jsem, že sendResponse ukončuje celý běh.
Myslím, že teď to bude v pohodě, když to rozdělím do dvou handlerů a do dvou ajaxových requestů.

Díky moc :)