jak na dynamický radio list

andros
Člen | 145
+
0
-

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
+
0
-

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 | 531
+
0
-

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
+
0
-

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);
        }