AJAX volání se provede, handle spustí ale data se nepošlou do snippetu

sejmor
Člen | 63
+
0
-

Zdravím a zase řeším určitě stupid problém:

Prostě našeptávač:

Mám formulářový input:

<?php
$form->addText('findtext', 'Find:', 10, 40)
	->setAttribute('autocomplete', "off")
	->setAttribute('placeholder', "Vyhledávání")
	->setAttribute('class', 'findform');

?>

K němu script

<script type="text/javascript">
    $(function () {
        $('input.findform').on('keyup', function () {
            var value = $(this).val();
            if (value.length >= 2) {
                $('div.naseptavani').show();
                $.nette.ajax({
                    'url': {link search!},
                    'data': {
                    term: value
                	}
            	});
            }else{
                //$('div.naseptavani').hide();
            }
        });
    });
</script>

V presenteru:

<?php
	public function actionDefault()
	{
		$this->template->results='po načtení';
	}


	public function renderDefault() {
	}

	public function handleSearch($term)
	{
		$this->template->results = 'ze searche';
		$this->redrawControl('naseptavani');
	}
?>

A v šabloně:

<?php
{snippet naseptavani}
    <div class="naseptavani">
            {$results}
    </div>
{/snippet}
?>

Po načtení stránky se mi v divu správně zobrazí „po načtení“. Pokud napíšu alespoň dva znaky do vyhledávací pole tak se zavolá AJAXem handleSearch. Ve firebugu mi vrátí normálně status 200. Do snippetu mi ale nepošle proměnou results – pošle pouze:

<?php
{"state":{"lang":null}}
?>

Jak do něj nacpu proměnou $result ?

Editoval sejmor (4. 5. 2018 13:32)

CZechBoY
Člen | 3608
+
0
-

Nepřepisuješ si náhodou ty results v renderu?

sejmor
Člen | 63
+
0
-

Právě že ne .. v renderu nemám vůbec nic :(

sejmor
Člen | 63
+
0
-

Teď jsem to zkusil na úplně čistém projektu a funguje to … takže se mi tam asi hádá nějaká jiná knihovna :)

sejmor
Člen | 63
+
0
-

Takže planý poplach … snippet jsem měl v include šabloně :)