DependentSelectBox – NULLova hodnota promenne zavisleho SELECT boxu po odeslani formulare
- moonlite
- Člen | 8
Narazil jsem na nasledujici problem (a ani po nekolika hodinach nenasel odpoved).
Pouzivam doplnek "DependentSelectBox ":https://componette.org/search/?… , ktery funguje v pohode. Avsak pri predchozim naplneni zavisleho SELECT boxu hodnotami vznikne urcity problem.
O co jde: Ve formulari jsou dva SELECT boxy – viz nasledujici kod:
Prvni je obycejny SELECT box, druhy je zminovany DependentSelectBox. Pri vyberu hodnoty z prvniho SELECTu se do druheho spravne nactou z databaze hodnoty pro druhy SELECT box (to zajisti funkce getValuesSelect2).
Mejme napr. situaci, ze prvni SELECT box bude kraj v CR a druhy SELECT box budou krajska mesta. Uzivatel zvoli kraj a mesto a formular potvrdi. Nyni ale potrebuji tento formular zobrazit znovu uz vyplneny a s vybranym krajem a mestem.
Konkretni stranku nacitam jako /presenter/ajaxtest/, proto jsem do presenteru pridal tuto funkci, ktera zjisti ulozene ID kraje i ID mesta. Tato funkce v prvnim SELECT boxu jen nastavi vybrani konkretniho kraje, do druheho SELECT boxu nasype data a vybere konkretni kraj.
Pote pri zmene kraje stale funguje zmena mesta v druhem SELECT boxu, avsak pri odeslani formulare ma ID mesta hodnotu NULL!!! (Pri pouziti Debug::dump($button->getForm()->getValues());
Pritom po odeslani formulare je ve Firebugu pro hodnoty (ktere se odesilaji POSTem) jasne videt, ze id_kraj i id_mesto maji IDcka nastaveny spravne!
Netusim, kde je chyba. Vim jen, ze kdyz nenaplnuju pred zobrazenim druhy SELECT box, je vse OK.
Delam nekde chybu, nebo jde o nejaky bug?
Pokud postupuju spatne, poradte prosim, jak obejit to, abych umel zobrazit oba SELECT boxy jiz vyplnene. Mozna nepostupuji spravne…
Diky! :-)
Editoval moonlite (6. 3. 2011 9:10)
- moonlite
- Člen | 8
Jeste pro doplneni – zavisly SELECT box musim predvyplnit hodnotama kvuli tomu, ze pri nacteni formular je tento zavisly SELECT box pochopitelne prazdny. Nevim, ale, jak jinak to udelat. Pokud by slo v prvnim SELECT boxu nastavit ID, pote nejak emulovat AJAXovy pozadavek a pote v druhem SELECT boxu (ktery jiz ma hodnoty) nastavit spravne ID, poradte prosim, jak toho docilit… :-)