Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Jak wykonać operację na ciągu znków przed wysłaniem go do bazy danych
Forum PHP.pl > Forum > PHP > Frameworki
tjaden
Problem mój polega na tym, że mam pole tekstowe do którego użytkownik wprowadza wartość (jakiś tekst) i chcę żeby tam gdzie on wstawi enter, enter ten był widoczny w podglądzie.

Przykład:
wprowadzam:
"wiersz1
wiersz2
wiersz3"
i chcę żeby się taksamo to wyświetlało przy pobraniu rekordu z bazy, teraz po pobraniu z bazy wyświetla mi się coś takiego:
"wiersz1 wiersz2 wiesz3"
LBO
nl2br
ceieneka
Wstaw znak lamania wiersza do bazy \n lub htmlowy znacznik <br>
tjaden
tyle to ja wiem ale ..... w Symfony funkcję tą trzeba wykonać na zawartości sfWidgetFormTextarea i właśnie z tym mam problem

tego też próbowałem, ale po pierwsze użytkownik powinien mieć możliwość pisania przejrzystego tekstu bez znajomości HTMLa, a po drugie też nie działa ;]
Crozin
nl2br powinieneś wstawić w szablonie, a nie pchać do bazy danych.
Whisller
Chyba nie do końca tak jest jak mówisz @tjaden. W końcu zanim "symfony" zapisze Ci to do bazy (zapewne używasz $this->form->save()), trzeba jakoś klasie formularza przekazać wartości ( $this->form->bind ). Więc zanim zbindujesz wartosci do klasy formularza wykonaj na nich odpowiednie zmiany które są Ci potrzebne.
tjaden
tak też nie działa (zarówno <br> jak i \n wyświetla się w pobranym rekordzie,nie przełamując linii) po wtóre użytkownik powinien pisać, że tak powiem/napiszę w sposób naturalny (wstawiając enter tam gdzie chce przełamaćlinię)

o właśnie .... o to mi chodziło, dzięki
LBO
tjaden, zapisz tekst z textarea do bazy bez żadnej obróbki.

Następnie, pobierz go i wyświetl w przeglądarce.... z tym, że spójrz do źródła - co widzisz?

A na podstawie tego co zobaczysz wyciągnij wnioski.
tjaden
dobra rada ...... dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.