Formulář – nastavení defaultní hodnoty prvku při zaškrnutém checkboxu
- Allconius
- Člen | 317
Ahoj, mám tento formulář:
<?php
$form->addCheckbox('db', ' Přístup k informačním databázím')
->setDefaultValue(0)
->addCondition($form::EQUAL, true)
->toggle('db-group')
->toggle('db-opravneni')
->toggle('db-aplikace')
->toggle('db-ou')
->toggle('db-oduvodneni');
$form->addGroup('Přístup k informačním databázím')
->setOption('id', 'db-group')
->setOption('description', '');
$opravneni1varianta = array(1 => ' zřízení',2 => ' změnu',3 => ' zrušení / přístupu k informačním databázím');
$form->addRadioList("opravneni1",'Žádám o ',$opravneni1varianta)
->setOption('id', 'db-opravneni')
->getSeparatorPrototype()->setName(null)
->addConditionOn($form['db'], Form::FILLED)
->setDefaultValue(1);
?>
a potřeboval bych nějak upravit to
<?php
->addConditionOn($form['db'], Form::FILLED)
?>
aby když se zaškrtne ten checkbox tak aby se u radiolistu nastavila hodnota setDefaultValue(1) a když se to odšrtne aby tam nebylo nic. Zkoušel jsem i:
<?php
->addConditionOn($form['db'], Form::EQUAL, TRUE)
?>
ale píše to:
Object of class Nette\Forms\Controls\Checkbox could not be converted
to string
Editoval Allconius (26. 7. 2019 14:00)
- David Matějka
- Moderator | 6445
- ta soucasna chyba se ti zobrazuje z duvodu, ze addConditionOn volas na Html objektu vracenem z getSeparatorPrototype
- podminene nastaveni default hodnoty nejde (jedine pres vlastni js)
- a potrebujes to vubec? jestli to dobre chapu, tak je ten radiolist stejne skryty, pokud neni checkbox zaskrtnuty
- Allconius
- Člen | 317
David Matějka napsal(a):
- ta soucasna chyba se ti zobrazuje z duvodu, ze addConditionOn volas na Html objektu vracenem z getSeparatorPrototype
- podminene nastaveni default hodnoty nejde (jedine pres vlastni js)
- a potrebujes to vubec? jestli to dobre chapu, tak je ten radiolist stejne skryty, pokud neni checkbox zaskrtnuty
Ahoj, díky, máš pravdu. Ten RadioList je skrytý, ale na tu položku „opravneni1“ se váže podmínka, ale vyřešil jsem to nakonec úpravou té podmínky:
<?php
if ((($values->opravneni1)==1)and(($values->db)==1)) ....
?>
a to addConditionOn jsem alespoň využil na seznam aplikací:
<?php
$options1 = $this->db2Manager->seznamAplikace();
$form->addMultiSelect('dbaplikace', 'Aplikace/ Agenda:', $options1, 30)
->setOption('id', 'db-aplikace')
->setOption('description','Pro výběr více aplikací/agend stiskněte klávesu Ctrl')
->addConditionOn($form['db'], Form::EQUAL, TRUE)
->setRequired('Není vybrána žádná aplikace nebo agenda.');
?>