Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: textarea + <br />

Sivun loppuun

HellCome [04.05.2006 23:42:57]

#

No moroskuikkaa taas. Osastonhoitaja lähti kahville, joten kipitin koneelle esittämään kummallisia kysymyksiä. Näppäränä asekätkijänä tein hienon lomakkeen, jossa on asiaankuuluvasti myös <textarea></textarea>. Jännästipä osasin sen myös tietokantaan asettaa, mutta voi.. sitten mieleen tuli yksi rajoitus, nimittäin sellainen, että mitenkäs minä saan enterin painalluksen menemään <br />:nä tietokantaan? Ongelma kun on se, että takaisin <textareaan> tk:sta haettuna rivinvaihdot eivät tulostu laisinkaan.

Täällä putkassahan se toimii mitä mainioimmin, mutta vanhan miehen väsyneet silmät eivät enää ole entisellään.

tsuriga [05.05.2006 00:08:34]

#

string nl2br ( string string )

HellCome [25.05.2006 18:58:27]

#

Kiitosta kiitosta - näin sitä on ihminen unohtavainen

T.M. [27.05.2006 13:25:58]

#

Huom, nl2br() funktio tekee myös rivinvaihdot <br /> koodin perään.

HellCome [27.05.2006 13:53:48]

#

Hmm.. niinhän se tekee, mutta mahtaneekohan tuollen mitään?

Olga [27.05.2006 14:18:11]

#

$mjono = str_replace(array("\r\n", "\n", "\r"), "<br />", $mjono);

Tokihan fiksua olisi viedä teksti sellaisenaan kantaan ja tehdä muotoilut vasta tulostusvaiheessa.

renni [28.05.2006 15:46:53]

#

Missäs välissä ne rivinvaihdot katoaa? Kyllä niidenkin pitäisi mennä kantaan kiltisti ja tulla takaisinkin oikein. Ainakin itse käytän textareaa noin ja hyvin toimii ilman mitään kikkailuja.

HellCome [29.05.2006 13:56:58]

#

Rivinvaihdot katoavat silloin, kun painaa enteriä textareassa - ihan niinkuin tätäkin kirjoittaessa. Kun tässä nyt painelen muutaman kerran enteriä (nyt)

... niin nyt tekstissä näkyy muutama rivinvaihto, eikä edes tekstiä muokatessa tule rivinvaihtojen kohdalle <br />:ä, vaan teksti pysyy mitä mainioimmin kasassa juuri sellaisena, kuin se on tarkoitettukin.

<html><body><form method=POST>
<textarea name="foo"></textarea>
<input type="submit" value="Jemmaan">
</form></body></html]

jonka jälkeen jemmataan..

...
...
$teksti=$_POST['foo'];

$sql=INSERT INTO tk (teksti) VALUES $teksti;
...
...

ja sitten katsellaan

<?php
$sql="SELECT.....
...
...
print $tieto[0];
...
...

... mutta lopputulos ei olekaan

Tässä
ovat
tekstit

vaan..

Tässäovattekstit

Mikä lie menninkäinen on mennyt kiusaa tekemään, mutta tuolla tyylillä se tekstin näyttää.

Juice [29.05.2006 16:19:06]

#

No kyllä minulla vaan toimii kun pistän tekstin kantaan normaalisti (mysql_real_escape_string läpi tietty) ja sitten tulostettaessa käytän nl2br-funktiota.

print nl2br($tieto[0]);

Triskal [29.05.2006 19:59:33]

#

Rivinvaihdot menevät kyllä tietokantaan. Ne tulevat myös tietokannasta takaisin, mutta ongelmana on se, että HTML hukkaa ylimääräiset välilyönnit ja tulkitsee enteritkin välilyönneiksi. En tiennyt, että PHP:ssa on temput tuommoisille. Käytän itse preformatted text, eli <pre>-tagia. Näin:

echo '<pre width="0" >$tietokannasta_haettu_teksti_muuttujana</pre>';

Tuo PRE:n leveysasetus on tärkeä, koska se mahdollistaa sen käytön siten, että PRE-palikan leveyden voi määritellä CSS:llä ja rivitys toimii kiltisti. Voit määritellä CSS:llä vaikka näin:

pre {

width : 200px;
height : 200px;

}

Näin saat 200 pikseliä korkean ja leveän PRE-pulikan, jonka sisään haettava teksti saa sisältää vaikka pelkkiä entereitä ja välilyöntejä ja ne silti tulkitaan merkeiksi.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta