Witam.
Chciałbym stworzyć formę, która reaguje aktywnie na interakcję z kontrolkami.
przykładowo:
$qf = $this->init_module('Libs/QuickForm');
$qf->addElement('checkbox', 'id_check1', 'zaznacz mnie 1',array('onClick'=>$qf->get_submit_form_js()))
$qf->addElement('checkbox', 'id_check2', 'Zaznacz mnie 2',array('onClick'=>$qf->get_submit_form_js()))
$qf->addElement('text', 'id_text', 'Wpisz jakiś tekst')
$qf->addRule('id_text', 'Musisz coś wpisać.', 'required');
$vals = $this->get_module_variable('vals',array());
$qf->setDefaults($vals);
if ($qf->validate()) {
$vals = $qf->exportValues();
$this->set_module_variable('vals',$vals);
print_r($vals);
}
$qf->display();
Chciałbym aby kliknięcie na id_check1 ustawiało automatem id_check2 na identyczną wartość.
Mogę to zrobić jak powyżej przez
$qf->addElement('checkbox', 'id_check1', 'zaznacz mnie 1',array('onClick'=>$qf->get_submit_form_js()))
a potem po submicie ustawiając zmienną modułową z $vals, którą wczytuję przed ponownym wywołaniem formy przez $qf->setDefaults().
Ale tak nie chcę.
Czy można to zrobić bez przeładowywania formy (bo wtedy rule się odzywają) bezpośrednio przez 'onClick' bez submita?
Chciałbym, aby submit był realizowany zupełnie oddzielnie przez naciśnięcie klawisz submit a nie automatycznie przez kliknięcie na kontrolkę jak powyżej.
(czyli dodam do definicji kontrolek aby to zrealizować
$qf->addElement('submit', 'id_submit', __('Ustaw wybrane'));
)
To oczywiście jest ćwiczenie. Powyższego nie sprawdzałem w praktyce - może mieć błędy - chodzi o ideę.
Mam generalnie formularze (quick forms), w którym chciałbym ustawiać selecty, checki, radiobuttony w zależności od wyboru innego select'a, czy check'a z tego samego formularza bez wywołania submita (bo np. wtedy wszystkie niespełnione rules się odezwą i tracimy czas).
Kombinowałem na różne sposoby i nie radzę sobie.
Pozdrawiam
Praski