ajax u dependent select box
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- colek
- Člen | 59
Ahoj,
mohl by mi prosím někdo poradit kde mám chybu? Chci použít doplněk dependency select box a zaboha mi to nejde rozběhat…
LAYOUT, všechny vkládané soubory existují
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Modules demo</title>
<link rel="stylesheet" type="text/css" media="screen" href="{$basePath}/css/site.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/jquery.ui.datepicker.js"></script>
<script src="{$basePath}/js/jquery.livequery.js" type="text/javascript"></script>
<script src="{$basePath}/js/jquery.nette.js" type="text/javascript"></script>
<!-- dependent select box-->
<script type="text/javascript" src="{$basePath}/js/jquery.nette.dependentselectbox.js"></script>
<script type="text/javascript" src="{$basePath}/js/jquery.ajaxform.js"></script>
</head>
....
Default.default.latte
{snippet dForm}
{control dForm1}
{/snippet}
--/
protected function createComponentDForm1($name) {
Nette\Forms\Container::extensionMethod("addDependentSelectBox", "DependentSelectBox\DependentSelectBox::formAddDependentSelectBox");
$form->addText('zip', 'PSČ:');
$form->addDependentSelectBox("select1_2", "Obec", $form["zip"], array($this, "getRegionByZip"));
if($this->getPresenter()->isAjax()){
$form["select1_2"]->addOnSubmitCallback(array($this->getPresenter(), "invalidateControl"), "dForm");
}
}
public function getRegionByZip( $array ) {
$zip = $array["zip"]->getValue();
$region[1] = "kraj1";
$region[2] = "kraj2";
$region[3] = "kraj3".$zip;
return $region;
}
--/
Když dám pryč jquery.nette.dependentselectbox.js tak se mi zobrazí tlačítko Load a pomocí něj to funguje tak jak má...
díky za radu
- frosty22
- Člen | 373
Zkus prohodit tyto dva řádky:
<script type="text/javascript" src="{$basePath}/js/jquery.nette.dependentselectbox.js"></script>
<script type="text/javascript" src="{$basePath}/js/jquery.ajaxform.js"></script>
Jelikož dependentselectbox.js snad volá nějakou metodu, která je v ajaxform.js, čili by ta se měla inicializovat dříve – ale je to jen plácnutí do tmy, jelikož jsem se s tímto problémem snad už potkal a bylo to tímto.
- radikus
- Člen | 11
Ahoj, taky mi nefungoval ajax. Po dlouhém laborování jsem přesunul tyto čtyři linky na konec headu a rozjelo se to.
<?php
<!-- Nette js -->
<script type="text/javascript" src="{$basePath}/js/nette/jquery.nette.dependentselectbox.js"></script>
<script type="text/javascript" src="{$basePath}/js/nette/jquery.nette.js"></script>
<script type="text/javascript" src="{$basePath}/js/nette/netteForms.js"></script>
<script type="text/javascript" src="{$basePath}/js/nette/jquery.ajaxform.js"></script>
<!-- Nette js END-->
?>
Nette 2.0 namespace