Skocz do zawartości
  • 0
naXe

Formularz - wybieranie grup

Pytanie

Witam, posiadam taki oto kod:

$form->add(new \IPS\Helpers\Form\Select('servlist_groupvisible', \IPS\Settings::i()->servlist_groupvisible == 'all' ? 'all' : \IPS\Settings::i()->servlist_groupvisible, TRUE, [ 'options' => \IPS\Member\Group::groups(), 'parse' => 'normal', 'multiple' => true, 'unlimited' => 'all', 'unlimitedLang' => 'all_groups' ], NULL, NULL, NULL, 'servlist_groupvisible'));

po wybraniu grupy, zatwierdzeniu formularza i odświeżeniu strony (lub wejściu jeszcze raz) wartość select'a wraca na pierwszą pozycję listy wyboru (w moim przypadku na grupę Administrator).
próbowałem już 3 rozwiązań, ale każde kończy się podobnym efektem.

PS: nie wiem czy ma to jakieś znaczenie, ale formularza używam do aplikacji.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Polecane posty

  • 0
Dnia 25.03.2016 o 12:00, naXe napisał:

PS: nie wiem czy ma to jakieś znaczenie, ale formularza używam do aplikacji.

Nie ma znaczenia

Ja tutaj widzę błąd w parsowaniu listy grup. Poprawny kd wygląda tak:

$form->add( new \IPS\Helpers\Form\Select( 'sd_register_groups', ( \IPS\Settings::i()->sd_register_groups == '*' || \IPS\Settings::i()->sd_register_groups === NULL ) ? '*' : explode( ',', \IPS\Settings::i()->sd_register_groups ), FALSE, array('options' => array_combine( array_keys( \IPS\Member\Group::groups() ), array_map( function( $_group ) { return (string) $_group; }, \IPS\Member\Group::groups() ) ), 'multiple' => true, 'unlimited' => '*', 'unlimitedLang' => 'all' ), null, null, null, 'sd_register_groups' ) );

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Próbowałem również z explode i efekt był podobny :/

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

no to może źle zapisujesz dane? nie ma możliwości, żeby to moje nie działało. używam tego w aplikacjach i działa ładnie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Jakaś wskazówka? używam tylko $form->saveAsSettings($values).
Po wybraniu opcji UNLIMITED (Wszystkie grupy) zamiast wybierać pojedynczo, ustawienie zostaje zapisane i po odświeżenie nie zmienia się.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
  • 0

Z tego co pamiętam w takim przypadku sam musisz zadbać o joinowanie elementów itp. Użyj:

$form->saveAsSettings();

$form->saveAsSettings();

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony


  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies.