jak na dynamický radio list
- andros
- Člen | 145
Pro dependent selectbox používám https://github.com/…entSelectBox
.
Znáte někdo něco podobného, ale místo select boxu bych potřeboval použít
radio list ?
Například v košíku se pro výpis přepravních metod hodí lépe radio,
než select.
Potřebuji po kliknutí na hodnotu načíst další radio list se seznamem
platebních metod.
Díky za rady.
- pikapika
- Člen | 4
Ahoj,
aktuálně řeším to samé. Můžu se zeptat jak jsi vyřešil?
Závislé selectboxy nejsou problém → https://blog.nette.org/…-javascriptu
, u radioListu předpokládám nutnost použití addCondition a toggle?
Díky za info :)
- petr.pavel
- Člen | 535
RadioList není jeden prvek, kterému mu uvnitř vyměňuješ options, ale sada (z pohledu HTML) nezávislých prvků. JavaScript bude tedy dost jiný – potřebuješ taky nějaký rodičovský prvek, aby JS věděl, kam ty INPUTy vkládat / odkud staré mazat.
Hotové řešení jsem nepotkal.
- pikapika
- Člen | 4
petr.pavel napsal(a):
RadioList není jeden prvek, kterému mu uvnitř vyměňuješ options, ale sada (z pohledu HTML) nezávislých prvků. JavaScript bude tedy dost jiný – potřebuješ taky nějaký rodičovský prvek, aby JS věděl, kam ty INPUTy vkládat / odkud staré mazat.
Hotové řešení jsem nepotkal.
Nakonec jsem vyřešil viz. níže, přijde mi to nakonec jako docela
jednoduché řešení.
používám klasický netteForms.min.js
vše funguje podle mého požadavku
$tvar = $this->getParameter('tvar');
$size = $this->getParameter('size');
$form->addRadioList('tvar', 'Tvar:', $tvary)
->setDefaultValue($tvar)
->addCondition(Form::EQUAL, 'kruh')
->toggle('kruh')
->elseCondition()
->addCondition(Form::EQUAL, 'oval')
->toggle('oval')
->endCondition();
$form->addRadioList('kruh', 'Rozměr:', $kruhy)
->setOption('id', 'kruh');
if (array_key_exists($size, $form["kruh"]->getItems()) )
{
$form["kruh"]->setDefaultValue($size);
}
$form->addRadioList('oval', 'Rozměr:', $ovaly)
->setOption('id', 'oval');
if (array_key_exists($size, $form["oval"]->getItems()) )
{
$form["oval"]->setDefaultValue($size);
}