Formulář, Select – událost onChange přesměrování (Nette v. 2.0)

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

Zdravim, chci se zeptat, potřeboval bych dát událost onChange na Select, že při změně hodnoty selectu, se mi stránka přesměruje na stejnou stránku a předá parametr stránce vybranýho selectu.
Mám následující:

$form->addSelect(,,$hodnoty)

A nevim jak vytvořit ten link pro to přesměrování. Zkoušel jsem následující:

$form['id']->setAttribute('onChange','window.location.href="'.$this->link('this',array('id'=>$hodnoty.'"'));

Ale nevim, jak zvolit aby se pro zadanou položku nastavit správné hodnoty z pole, který sou i současně naplněný selectem.
Nebo jestli je nějaké lepší řešení, tak se nebudu zlobit děkuji.
Děkuji za každou odpověď zkoušel

Editoval Prochy (12. 3. 2012 19:11)

frosty22
Člen | 373
+
0
-

Toto bych neřešil vůbec formulářem přes nette, ale jen čistě selectem, čili v HTML:

<select onchange="goto(this, '{plink this}')">
  {foreach $values as $id => $value}
  <option value="{$id}">{$value}</option>
  {/foreach}
</select>

a v javascriptu něco jako (v jquery bych věděl, ale čistě JS už moc nepamatuji :D):

<script type="text/javascript">
function goto(select, url) {
   var value = select.options[select.selectedIndex].value;
   window.location.href= url + '?id=' + value;
}
</script>

Ten JS asi bude špatně, je to jen nástřel a hlavně tedy tam není ošetřené, to skládání URL, zdali už neobsahuje query string, atd.