Ajax prekresleni komponenty ve snippetu

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

Ahoj, no nevim jestli uz se tu neresilo, nebo jestli to nechapu spatne, ale nenachazim reseni…

Problem: Mam Komponentu CreditTable, ktere predam data a vykreslim ve spod stranky… Nad tabulkou mam Malicky formular, ktery obsahuje select a ted chci aby se na akci onchange toho selectu znovu nacetla tabulka, kterou generuje komponenta.

  1. Nechapu co vsechno je nutne aby se mi spustil ajax v nette, udelal jsem priklad, ten mi jel, ale to bylo na kliknuti a tady je to onchange… pak jestli je nebo neni nutny $.nette.init(), nekde se o tom mluvi, nekde ne, tak su z toho jalovej…
  2. Napisu si handleOnchangeSelect().. ten by se mel volat po akci Onchange toho selectu, ale jak poslu data do te komponenty mi neni jasny
  3. Kod:

Vsechny klihovny jako jquery.min.js, jquery.ajax.js jsou includovany

<?php
//Presenter

public function createComponentAddCreditForm() {
	$form = new UI\Form();

	//bla bla formular a dalsi prvky
	$form->addSelect('type', 'Typ: ', $types)->getControlPrototype()->setClass('ajax');
	//bla bla validace
	return $form;
    }

public function createComponentCreditTable() {
	$table = new \komponent\tables();
	//bla bla sazim nastaveni sazim data
	return $table
}

public function handleOnchangeSelect($credit_type) {

	if($this->isAjax()) {
		//no a tady nevim co s tim, prekleslim promenou $foo a to je tak vsechno
	}

    }
?>

a v sablone stranky mam:

<script>
	$(function(){
	    //kdyby nahodou
	     $.nette.init();

		//reakce na zmenu selectu
	    $('input.ajax').change(function() {
		$.get(this.value);
	    });
	});
</script>

//dal pak v sablone

{control addCreditForm}

{snippet creditTable}
{control creditTable}
{/snippet}

A ted nevim co dal

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Ad javascriptovou stránku věci:

Co se týče inicializace, nevím, co kdo kde píše, ale dokumentace mluví jasně :).

$.nette.init();

$('input.ajax').change(function () {
	$.nette.ajax({
		url: this.value
	});
});
kreed
Člen | 13
+
0
-

A uz to jde… jak malo stacilo… Super… diky moc… jestli se nekdy stuknem tvari v tvar, mas u me pivko, nebo cokoliv pijes ;)