přidání signálu na formulářový prvek option

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

Ahoj. Používám Nette 2.0.12 a zajímalo by mě, jak přidat odeslání signálu přes AJAX po „onClick“ na formulářový prvek option. Díky moc za radu.

Oli
Člen | 1215
+
0
-

napr:

$('#selectId').on('click', '.option' function(){ //nebo mozna nejaky nadrazenejsi prvek
	$.ajax({
		url: {link photogallery!}
		data: { nejakyData: $(this).val() }
	});
});
ODIS
Člen | 33
+
0
-

Oli napsal(a):

napr:

$('#selectId').on('click', '.option' function(){ //nebo mozna nejaky nadrazenejsi prvek
	$.ajax({
		url: {link photogallery!}
		data: { nejakyData: $(this).val() }
	});
});

Funguje zavolání handleru, ale mám problém s tím, že se tímto způsobem nepřekreslí snippet, který chci překreslit. Zkoušel jsem si pod sebe hodit dva odkazy, jeden se volá klasicky, ajaxově, přes n:href a druhý volá JS funkci, která má ve svém těle volání handleru.

šablona

<a class="ajax" n:href="forFun!">for fun</a> <!-- překreslí snippet -->
<a onClick="callForFun()">for fun 2</a> <!-- nepřekreslí snippet :( -->

presenter

<?php
public function handleForFun() {

	if ($this->isAjax()) {

		$this->template->test = 'test';
		$this->invalidateControl('myContext');
	}
}
?>

JS funkce pro volání signálu presenteru

function callForFun() {
	$.ajax({
		url: {link forFun!}
	});
}

Po zavolání JS funkce se v odezvě vrací správně naplněná data, ale snippet se už nepřekreslí? Neví někdo z vás, jak to vyřešit?

ODIS
Člen | 33
+
0
-

Vyřešeno, místo $.ajax je nutné zavolat $.nette.ajax

function callForFun() {
    $.nette.ajax({
        url: {link forFun!}
    });
}
cubic
Člen | 45
+
0
-

Pokud používáš nette.ajax.js, tak:

<script>
$.nette.ajax({
    type: 'get',
    url: {link photogallery!}
});
</script>