Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zamiana enter na <br>
robertinho
post 22.12.2008, 00:03:59
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 29.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Na wstępie powiem: wiem, że był już taki temat i wiem, że istnieje coś takiego jak nl2br(), ale o co innego mi chodzi.

Faktycznie po zastosowaniu nl2br zamienia entery na znaczniki <br />, ale chciałbym wiedzieć jak zrobić, by podczas edycji konkretnego wpisu, w polu tekstowym nie wyświetlały się owe <br />

Na tę chwilę, podczas edycji, wpis w polu tekstowym wygląda tak:
  1. Linia 1<br /><br />Linia2<br /><br />Linia 3<br /><br />

(Jednocześnie podczas kolejnego zapisywania edytowanego tekstu znaczniki się dublują)

A chciałbym, żeby wyglądało tak:
  1. Linia 1
  2.  
  3. Linia 2
  4.  
  5. Linia 3


Ten post edytował robertinho 22.12.2008, 00:06:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post 22.12.2008, 00:09:50
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nl2br() uzywaj przy wyswietlaniu danych, a nie przy zapisywaniu do bazy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
robertinho
post 22.12.2008, 10:15:08
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 29.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Zrobiłem tak jak mówisz, ale nie pomogło. Może robię coś źle.

  1. <?
  2. if (isset($_POST['tresc']))
  3.    {
  4.        $tytul = $_POST['tytul'];
  5.        $tresc = $_POST['tresc'];
  6.        
  7.        $sql = "UPDATE news SET
  8.        tytul = '$tytul',
  9.        tresc = '$tresc'";
  10.  
  11.            
  12.            if (@mysql_query($sql))
  13.                {
  14.                    echo 'Główna strona została zmodyfikowana pomyślnie!<br>
  15.                    <a href="../admin/news_admin.php">admin</a>';
  16.                } else
  17.                {
  18.                    echo '<p>Wystąpił błąd' . mysql_error() . '</p>';
  19.                }
  20.  
  21.    } else
  22.    {
  23.        $sql = @mysql_query('SELECT tytul, tresc FROM news');
  24.            
  25.            while ($wyswietl = mysql_fetch_array($sql)) {
  26.                $tytul = $wyswietl['tytul'];
  27.                $tresc = $wyswietl['tresc']; //Poprzednio tutaj dawałem nl2br
  28.            }
  29. ?>
  30.  
  31. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  32. <label>Tytuł:<br>
  33. <textarea name="tytul" rows="1" cols="40"><? echo $tytul; ?>
  34. </textarea>
  35. </label><br>
  36. <label>Treść:<br>
  37. <textarea name="tresc" rows="20" cols="40"><? echo nl2br($tresc); ?>
  38. </textarea>
  39. </label><br>
  40. <input type="submit" value="Zapisz" />
  41. </form>
  42.  
  43. <?
  44.  
  45. ;}
  46.  
  47. ?>


Ten post edytował robertinho 22.12.2008, 10:16:42
Go to the top of the page
+Quote Post
Lejto
post 22.12.2008, 10:23:19
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

Ostrzeżenie: (0%)
-----


w linii 46 po co ; przed }?
potem na początku w ifie wywołujesz zapytanie query?

Ten post edytował Lejto 22.12.2008, 10:23:59


--------------------
Go to the top of the page
+Quote Post
ziqzaq
post 22.12.2008, 10:28:07
Post #5





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


Skoro w formularzu dajesz nl2br() to jest chyba oczywiste że wszystkie nowe linie (\n) zostaną skonwertowane do <br/>, tak?
nospor miał na myśli to, żebyś zapisywał do bazy bez konwersji i:
1) Przy edycji _nie konwertujesz_ nowych linii na <br/> i wyświetlasz to w formularzu,
2) Na stronce gdzie ma się pojawić tekst _konwertujesz_ nowe linie na <br/>.

Edit:
@Lejto To chyba zamknięcie instr. else jeśli się nie mylę. <== tfu nie skumałem, my bad winksmiley.jpg

Ten post edytował ziqzaq 22.12.2008, 10:31:14
Go to the top of the page
+Quote Post
robertinho
post 22.12.2008, 10:59:13
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 29.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(ziqzaq @ 22.12.2008, 10:28:07 ) *
1) Przy edycji _nie konwertujesz_ nowych linii na <br/> i wyświetlasz to w formularzu,


Mój błąd bo nie sprecyzowałem do końca chyba.

Mi właśnie chodzi o to, żeby w formularzu też tego nie wyświetlać, bo ma się nim posługiwać osoba nie znająca żadnych podstaw html, więc chciałbym ograniczyć ich użycie.
Go to the top of the page
+Quote Post
ziqzaq
post 22.12.2008, 11:04:01
Post #7





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


Nie zrozumiałeś.
Spróbuję jeszcze raz.
Twój kod:
  1. <textarea name="tresc" rows="20" cols="40"><? echo nl2br($tresc); ?></textarea>

W tym momencie zamieniasz (konwertujesz) nowe linie na <br/>, a masz tego nie robić bo z tego co piszesz to tego nie chcesz.
Przypatrz się swojemu kodowi i pomyśl chwilę.

Edit:
Żeby była jasność to rozumiem twój problem tak:
Chcesz żeby w formularzu (textarea) nie było htmla (a sam go tam wsadzasz), natomiast na stronie chcesz mieć już html (aby móc wyświetlać nowe linie).
Jeśli się mylę to sorki. winksmiley.jpg

Ten post edytował ziqzaq 22.12.2008, 11:19:09
Go to the top of the page
+Quote Post
DawPi
post 22.12.2008, 12:39:44
Post #8





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 6.05.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witaj,
wg mnie najlepszym sposobem będzie użycie tutaj np. TinyMCE - popularny edytor BBCode - w pełni konfigurowalny. Dodajesz mały kod .js gdzie deklarujesz jakie buttony mają się wyświetlać etc., które pola formularza ma objąć edytor ( domyślnie textarea ) i gotowe. Nie martwisz się o zamianę kodu html na 'widzialny' i odwrotnie.

Polecam.


--------------------
intermedia - profesjonalne rozwiązania Invision Power Board
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:31