Witam,
Ty razem mam problem z ustawieniem tekstowego pola input w zależności od wybranej opcji pola select. Rzecz dotyczy backendu. Mam pole temat i w zależności jaką wybiorę opcję z listy to wartość (a najlepiej label) ma się wstawiać w formularzu wstawiać w pole temat. Pewnie trzeba przy selekcie wywołać fukcję load_callback i tam ustawiać wartość pola temat. Nie wiem jednak jak się odnieść do tego pola temat.
Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!

Jak ustawić wartość pola input text w zależości od wybranej opocji w polu select?
Rozpoczęty przez Jaro_27, sie 23 2011 18:17
#2
Napisano 23 sierpnia 2011 - 19:10

#3
Napisano 23 sierpnia 2011 - 19:31

#4
Napisano 23 sierpnia 2011 - 20:42

A działa? 
Samego activeRecord nie zobaczysz, bo obiekt faktycznie nazywa sie objActiveRecord:

Samego activeRecord nie zobaczysz, bo obiekt faktycznie nazywa sie objActiveRecord:
# /system/modules/backend/DataContainer.php /** * Active record * @param object */ protected $objActiveRecord; /** * Return an object property * @param string * @return mixed */ public function __get($strKey) { switch ($strKey) { case 'activeRecord': return $this->objActiveRecord; break; default: return null; break; } }
Codefog - Contao web development
#5
Napisano 23 sierpnia 2011 - 21:09

Niestety nie do końca działa. Zmienia się pole text w zależności od wyboru selecta, ale po zrobieniu zapisu wartość pola text nie zapisuje się do bazy. Zapisuje się tylko wtedy gdy dodam chociaż jedną literęz palca w polu text. To wtedy jest wartość z selecta + ta moja literka. Nie mam pojęcia co może być przyczyną.
Pole text wygląda tak:
Pole text wygląda tak:
'subject' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_newsletter']['subject'], 'exclude' => true, 'search' => true, 'inputType' => 'text', 'load_callback' => array(array('tl_Newsletter','setSubject')) )a select
'training' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_newsletter']['training'], 'default' => '', 'exclude' => true, 'inputType' => 'select', 'eval' => array('submitOnChange'=>true), 'options_callback' => array('tl_Newsletter', 'trainings') ),No i ta funkcja setSubject podobna jaką napisałeś tylko jest zapytanie mysql i w zależności o wybranej opcji w select zwraca wartość texta, który ładnie się zmienia, ale dopóki nie kliknę w niego i coś nie dopiszę to nie zapisuje się w bazie.
#6
Napisano 23 sierpnia 2011 - 21:15

Spróbuj dodać 'alwaysSave'=>true w evalu tematu:
'subject' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_newsletter']['subject'], 'exclude' => true, 'search' => true, 'inputType' => 'text', 'eval' => array('alwaysSave'=>true), 'load_callback' => array(array('tl_Newsletter','setSubject')) )
Codefog - Contao web development
#8
Napisano 24 sierpnia 2011 - 09:37

Witam,
Mam jeszcze jeden mały problem. Jak wybiorę sobie opcję z selecta to przeładowuje mi się storna ('eval' => array('submitOnChange'=>true)) i zmienia się zawartość pola text. I to jest OK. Ale jeżeli nie chcę robić zmian i wychodzę z fomrularza przez "Wróć" to okazuje się, że wartość pola text się nie zapisała do bazy, a selecta się zapisała. Czy da się tak zrobić, żeby ta wartość pola select nie zapisywała się jeśli chcę zrezygnować ze zmian i nie zatwierdzam formularza prze "Zapisz i Zamknij" tylko wychodzę przez wróć. Rozumiem, że ustawienie 'eval' => array('submitOnChange'=>true na selecie powoduje akceptację formularza i zapis danych, a ponieważ na polu text jest load_callback to zapisuje się stara wartość do bazy a dopiero jest ładowana do niego nowa wartość. Mam zatem taki efekt, że jedno pole ma starą wartość (text) a drugie pole(select) ma już nową. Czy da się to jakoś ominąć, żeby przy naciśnięciu "Wróć" nie zapisywały się zmiany formularza do bazy??
Mam jeszcze jeden mały problem. Jak wybiorę sobie opcję z selecta to przeładowuje mi się storna ('eval' => array('submitOnChange'=>true)) i zmienia się zawartość pola text. I to jest OK. Ale jeżeli nie chcę robić zmian i wychodzę z fomrularza przez "Wróć" to okazuje się, że wartość pola text się nie zapisała do bazy, a selecta się zapisała. Czy da się tak zrobić, żeby ta wartość pola select nie zapisywała się jeśli chcę zrezygnować ze zmian i nie zatwierdzam formularza prze "Zapisz i Zamknij" tylko wychodzę przez wróć. Rozumiem, że ustawienie 'eval' => array('submitOnChange'=>true na selecie powoduje akceptację formularza i zapis danych, a ponieważ na polu text jest load_callback to zapisuje się stara wartość do bazy a dopiero jest ładowana do niego nowa wartość. Mam zatem taki efekt, że jedno pole ma starą wartość (text) a drugie pole(select) ma już nową. Czy da się to jakoś ominąć, żeby przy naciśnięciu "Wróć" nie zapisywały się zmiany formularza do bazy??
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych użytkowników