Našeptávač podle návodu na zdrojáku

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

Vycházím z tohoto návodu: http://zdrojak.root.cz/…pokracovani/ ve spojení s AppForm, ale i když ještě v části $this->payload->autoComplete[] = $row[‚typ_vozidla‘]; mi to proměnou autocomplete plní (loguji si to do db), tak nakonec se do prohlížeče vrátí prázdná odezva. Pokud rozchodím přesný příklad z webu, tak je vše OK. Co mi to ještě může někde ve chvíli, kdy má NETTE odeslat data do prohlížeče rozhodnout o zaříznutí?

Presenter

<?php
    public function handleAutoComplete($typ_vozidla)
	{
		$this->payload->autoComplete = array();

		$typ_vozidla = trim($typ_vozidla);
		if ($typ_vozidla !== '') {
			$result = dibi::query('SELECT DISTINCT [typ_vozidla] FROM [w_auto] WHERE [typ_vozidla] LIKE %s ORDER BY [typ_vozidla]', '%'.$typ_vozidla.'%');

			foreach ($result as $n => $row) {
			    dibi::query('insert into log values(%s)', $row['typ_vozidla']); // log abych vedel jestli to funguje
			    $this->payload->autoComplete[] = $row['typ_vozidla'];
			}

			$this->terminate();
		}

	}
?>

Template

@{block #content}
...
@{widget form}
<script type="text/javascript">
	<!--
		$('#frmform-typ_vozidla').focus().keyup(function(event) {
			$.getJSON({link autoComplete!}, {'typ_vozidla': $('#frmform-typ_vozidla').val()}, function(payload) {
				alert('tu'); // tady se uz nikdy nedostanu
				$('ul').remove();

				var list = $('<div class="ac_results"><ul></ul></div>').insertAfter('#frmform-typ_vozidla');

				for (var i in payload.autoComplete) {
				    alert(payload.autoComplete[i]);
					$('<li></li>').text(payload.autoComplete[i]).appendTo(list);
				}
			});
		});
	-->
</script>
...
visitor
Člen | 22
+
0
-

Tak funkční řešení tu někdo napsal a následně hned smazal…

Ale tak pro ostatní…

pomohlo místo

<?php
$this->terminate();
?>

dát

<?php
$this->sendPayload();
?>

Editoval visitor (27. 3. 2010 10:05)