Ajax a závislé select boxi

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

Zdravím,
podařilo se mi rozhýbat dependentySelectBox ale stále se mi nedaří aby se automaticky aktualizovali hodnoty závislého select boxu.

v layoutu mám

<script type="text/javascript" src="{$basePath}/js/netteForms.js"></script>
	<script type="text/javascript" src="{$basePath}/js/jquery.ajaxform.js"></script>
	<script type="text/javascript" src="{$basePath}/js/jquery.nette.js"></script>
	<script type="text/javascript" src="{$basePath}/js/jquery.nette.dependentselectbox.js"></script>

ale stále nefunguje, když vypnu js objeví se tlačítko load a všechno funguje jak má, pouze s ajaxem je problém

zbytek kódu:

{block content}
    {snippet testForm}
	{control testForm1}
    {/snippet}
{/block}
$form->addSelect('number', 'Číslo od 1 do 3:', array('1' => '1', '2' => '2', '3' => '3'));
        $form->setDefaults(array(
	    'number' => '2',
	));
	$form->addDependentSelectBox("selectSubNumber", "Další dělení",  $form["number"], array($this, "getNumber"));
        if($this->isAjax()){
               $form["selectSubNumber"]->addOnSubmitCallback(array($this, "invalidateControl"), "testForm");
        }

Mohl by někdo poradit?
Předem díky

MW
Člen | 626
+
0
-

Nikde nevidim jquery.min.js …

Budry
Člen | 88
+
0
-

Zapoměl jsem, načtený by měl být

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>

\--

MW
Člen | 626
+
0
-

co vraci dump($this->isAjax()); ?

Budry
Člen | 88
+
0
-

Vrací FALSE

Editoval Budry (14. 10. 2011 12:23)

MW
Člen | 626
+
0
-

Tak v tom pripade ti nemzuze pridat callback na ten select…
Vyzkousej to bez te podminky, jak se ti to bude chovat..

Pak musis prijit na to, proc to nevyhodnocuje jako Ajaxovy pozadavek..

Prosel jsi si vsechny zavisloti, co jsou uvedeny u doplnku? Zkus posledni nette.js.

Dobre vy bylo to zkusit vysledovat ve Firefoxu (FireBugu) v konzoli.. Jsou tam videt chyby..

EDIT: tak jsem to testnul a taky mi to vraci FALSE, nicmene me to funguje :-) Mozna nam nekdo objasni, jakpa to ..

Jo a uka jeste getNumber().. Prijde me, ze to mame jinak stejne..

Editoval MW (14. 10. 2011 13:40)

Budry
Člen | 88
+
0
-

getNumber je jen testovací, nic extra v ní není :D

public function getNumber($form, $dependentSelectBoxName) {

        $number = $form["number"]->getValue();

        $return = array(
	    '1' => array(
		'1_1' => '1_1',
		'1_2' => '1_2',
		'1_3' => '1_3',
	    ),
	    '2' => array(
		'2_1' => '2_1',
		'2_2' => '2_2',
		'2_3' => '2_3',
	    ),
	    '3' => array(
		'3_1' => '3_1',
		'3_2' => '3_2',
		'3_3' => '3_3',
	    ),
	);
        return $return[$number];
    }

Když smažu to

$this->isAjax()

Tak to funguje tak jak má, akorát mi to zobrazuje tlačítko Load. Dělá ti to taky?

EDIT:
Opraveno, už to všechno šlape jak má. Funguje i $this->isAjax();zapoměl jsem upravit soubor jquery.nette.js jak je v návodu u doplňku.

Dík za rady

Editoval Budry (14. 10. 2011 17:33)

MW
Člen | 626
+
0
-

jj, to se musi upravit…
tobe vraci isAjax TRUE? Kde to dumpujes ?

Tomáš Votruba
Moderator | 1114
+
0
-

Jestli hledáte hodnoty pro select závislé na jiném selectu, zde je funkční řešení (sám jsem ho nejdříve zprovoznil :))

Editoval Schmutzka (29. 12. 2011 16:21)

Leinad
Člen | 23
+
0
-

Schmutzka napsal(a):

Jestli hledáte hodnoty pro select závislé na jiném selectu, zde je funkční řešení (sám jsem ho nejdříve zprovoznil :))

Odkazované řešení už neexistuje :-(

Tomáš Votruba
Moderator | 1114
+
0
-

Omlouvám se, hodil jsem to do kuchařky a ani nedal vědět.

Editoval Schmutzka (25. 1. 2012 8:15)