![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Problem wydaje się być banalny ale siedzę już 3h próbując na różne sposoby i nie mogę sobie z tym poradzić. Mam zwalidować za pomocą walidatora Choice, wartość która znajduje się w TinyMCE. Chodzi o to żeby uzytkownik nie mógł zmienić wartości. Od razu piszę, że wiem, że takie coś można również zrobić za pomocą Callbacka, ale Choice też może być. Czyli mamy jakiś tekst w TinyMCE i teraz problem tkwi w tym że wartości te nie chcą się zgadzać.
Domyślam się, że problem leży prawdopodobnie w kodowaniu tylko ja już nie wiem co jak zakodować, żeby tekst przesyłany z POST był równy temu, który jest w bazie. Poniżej wypisuje co już zrobiłem: - dodałem do formularza 'accept-charset="utf-8" - dodałem do konfiguracji Tiny encoding: "utf-8" - porównałem za pomocą print_r() obydwa teksty i zobaczyłem ze en pobierany z bazy w miejsce spacji wstawia   więc, więc pozamieniałem je wszystkie na ' '. Przykład: - tekst pobrany przez getObject(): -tekst pobrany przez getParameter() Jak ktoś zna sposób krótszy i szybszy niż mój aby zablokować możliwość zmiany wartości w konkretnych polach formularza to proszę o pomoc. Samo readonly nie wystarcza (wiadomo dlaczego), a pole musi być przesyłane. Proszę o pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Czemu akurat Choice? Dlaczego pole musi zostać przesłane, skoro nie jest zmieniane?
Rozwiązaniem jest nie zapisywanie nowej wartości, nie wyświetlanie jej (w przypadku błędów w formularzu). Można to zrobić na różne sposoby, np. już w metodzie bind zmieniać wartość przesłaną na wartość z obiektu. Ten post edytował destroyerr 22.09.2010, 23:51:54 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem Cię. Tylko najgorsze jest to, że cały formularz jest generowany automatycznie w zależności od pozwoleń dla danego pola i innego typu rzeczy. Wszystko jest ustalane w klasie formularza postępując zgodnie z dobrymi zasadami. To tam nadawane są inputy z różnymi atrybutami. Generowany formularz leci do akcji tam jest sprawdzany i zapisywany. Teraz, gdybym chciał zrobić tak jak piszesz musiałby większość mechanizmów przenieść do akcji lub powtórzyć je w niej.
Rozumiem że najłatwiej byłoby po prostu nie zapisywać tej przesyłanej wartości, ale wtedy muszę analizować po stronie akcji które pole jest z jakim pozwoleniem, a to dodatkowe objętości kodu. W momencie jak to wszystko leci to z góry wiadomo że tylko jedna wartość przejdzie a wszystkie pozostałe elementy są już sprawdzone. Problemem nie jest sprawdzanie kilkudziesięciu bajtów, ale może pojawić się problem gdy sprawdzane będą całe artykuły poprzez tinyMCE. btw. okazało się że jakimś cudem znalazły się w bazie znaki w innym kodowaniu i to psuło sprawę. Ten post edytował blackroger 23.09.2010, 00:41:01 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Skoro do formularza dochodzi informacja jakie pole nie może zostać zapisane (bo na tej podstawie stosujesz walidację wyboru dla tego pola), to już wiemy jakie pole wyciąć, albo jakiego nie zapisać. Przykład:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
ok dzięki wielkie
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 10:37 |