Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Textarea
Forum PHP.pl > Forum > Przedszkole
tjall
Mam problem z umieszczeniem tekstu w bazie i pozniejszym jego wyswietleniu.
Tekst jest wprowadzany w polu textarea:
  1. <?php
  2. echo '<textarea name="news" cols="60" rows="30" wrap="physical"></textarea>';
  3. ?>

Po zapisaniu w bazie tekstu brak jest znakow konca linii. Czy fizyczne zawijanie tekstu nie dodaje takich znaków?
Jak jest lepiej? Wprowadzac tekst do bazy bez znakow konca linii i pozniej za pomoca skryptu wyswietlac kolejne linie? Czy przed wprowadzenie tekstu do baz dodac znaki konca linii?
nospor
jesli przed zapisem do bazy nie uzywasz zadnych kosmicznych funkcji, to do bazy zapiszą się tez entery.

pisales cos o wyswietlaniu. jesli ty wyswietlasz te tekst od razu na stronke to ci entery znikną, gdyz w html nową linią jst <br />. Musisz przed wyswietleniem, potraktowac tekst funkcją nl2br()
tjall
Czyli
  1. <?php
  2. echo '<textarea name="news" cols="60" rows="30" wrap="physical"></textarea>';
  3. ?>

wstawia entery do zmiennej news, tak?
nospor
za bardzo nie rozumiem o co teraz pytasz. pokazales mi tu jak tworyzsz tekstarea. nic do niego z kodu nie wstawiasz. oco pytasz?
tjall
ok juz tlumacze ....
Do textarea wprowadzam text przewijanie jest fizyczne czyli powinien dodawac znaki konca linii. Ale raczej nie dodaje sad.gif, jak dam reczenie enter to i owszem smile.gif.

Jesli w tekst w bazie bylby zapisywany bez znakow /r/n to przy wyswietlaniu musialbym porcjami pobierac tekst, cos w rodzaju:
  1. <?php
  2.  
  3. print substr($text[2],0,100);
  4. echo '<BR />';
  5.  
  6. ?>

tak w uproszczeniu

Narazie to wyglada tak:

zapisywanie:
  1. <?php
  2.  
  3. echo '<textarea name="news" cols="60" rows="30" wrap="physical"></textarea>';
  4. ....
  5. $query="select max(id) from news";
  6. $mysql_result=mysql_query($query,$db);
  7. $wynik=mysql_fetch_row($mysql_result);
  8. $idn=$wynik[0] + 1;
  9. $sql="insert into news (id,title,text,link,date,autor) values ($idn,'$title','$news','$pic_link','$today','$autor')";
  10. $result=mysql_query($sql,$db);
  11.  
  12. ?>


wywietlanie:
  1. <?php
  2.  
  3. print "<p class=\"style34\">". substr($text[2],0,500) ."</p>";
  4.  
  5. ?>


Cos mi sie wydaje ze trzeba bedzie recznie enterowac ...
nospor
no ale czy ty wogole uzylesz funkcji co ci podalem? nl2br()? nie widze tego. skrypt co pokazales zachowuje sie prawidlowo. a nie wyswietla ci nowych linii bo pisalem ci ze now linie w html są olewane. musi byc znacznik <br />. i to wlasnie robi nl2br() dopisuje obok enterow znaczik <br />, dzieki czemu masz nowe linie...
tjall
Chyba zle wyluszczylem o co mi chodzilo.
Jak klepie tekscik w textare (przy wrap physically) to przy przejsciu automatycznym do drugiej linii enter sam sie nie doda ... prawda?
A ja tak wlasnie chcialem
Ponizej kod ktory (chyba potwierdza moje przypuszczenia ..

  1. <? 
  2. if($new=="Akceptuj") {
  3. $link = mysql_connect("localhost","root","football") or die("Nie mozna sie polaczyc");
  4. mysql_select_db("sokol2", $link);
  5. $query="insert into test values ('$text')";
  6. $mysql_result = mysql_query($query, $link);
  7. $query="select text from test";
  8. $mysql_result = mysql_query($query, $link);
  9. $result=mysql_fetch_row($mysql_result);
  10. print nl2br($result[0]);
  11.  
  12. }
  13.  
  14. ?>

  1. <form action="test.php" method="post" enctype="application/x-www-form-urlencoded">
  2. <textarea name="text" cols="20" rows="20" wrap="physical"></textarea>
  3. <input name="new" type="submit" value="Akceptuj" />
  4. </form>


Trzeba by chyba jakims skrypcikiem dodawac znaki konca linii co iles znakow ale tez trzeb by zwazac na spacje ... uff.
nospor
No i wszystko jasne. prosze, tu masz funkcję, która chyba zrobi to co chcesz winksmiley.jpg
http://pl.php.net/manual/pl/function.wordwrap.php
tjall
Dzieks biggrin.gif
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.