Permalänk
Medlem

Variabel med flera rader o PHP

Hej!

Jag har ett problem. När jag läser in ett värde med flera rader (t.ex. en adress) från en databas och sedan ska skriva ut det står hela värdet på en lång rad.

T.ex. blir
Kaffe
Te
Chocklad

På föjande vis:
Kaffe Te Chocklad

Om jag skriver ut värdet i en <textarea> får jag med alla radbrytningar. Har någon nåt tips?

Permalänk

Har för mig att nl2br fixar sådant,
även om det enligt mig är en ful lösning.

http://se.php.net/nl2br

Permalänk
Medlem

På vilket sätt är det en ful lösning? Det är ju faktiskt den enda lösningen. (Inte att man bara kan använda den funktionen, utan att man ersätter newline med <br>)

Permalänk
Medlem

Det finns en ytterligare lösning, att visa det i ett format där vanliga radbrytningar respekteras. Alltså inom en textarea som nämndes ovan, eller också inom <pre></pre> har jag för mig, eller white-space: pre; i CSS.

Permalänk
Medlem

Fast det bästa sättet är faktiskt nl2br, så slipper man onödigt htmlkod

Visa signatur

Asus P5K-Premium WiFi | Intel Core2Quad Q6600 @ 3.3Ghz | 4x2GB OCZ Platinum | Radeon HD6950GB | Intel SSD 160GB

Permalänk
Medlem

Nå, det kunde ju vara rätt snyggt, kod-mässigt, med typ

<adress>
Adressen
Står
Här
</adress>

och sen CSS som stylar det rätt, men jag förstår inte riktigt vad Andnil223 har emot <br />. Jag skulle då använda nl2br().

Permalänk
Medlem

Så länge man inte behöver plocka in det i databasen igen funkar ju nl2br() utmärkt. Om det blir nödvändigt att plocka in det igen kan man köra med br2nl(), men den funkar inte alltid helt perfekt...

Visa signatur

i5-4670k | GTX 670 | ASUS Z87-A | 2x4GB Corsair Vengeance 1333 MHz | Corsair VX 450 | 80 GB Intel X25 SSD systemdisk | 256 GB Samsung 840 spel/cachedisk | 2+3 TB WD Green lagringsdiskar | Fractal Define R4 | G2420HDBL (24") + L227WT (22")

Citera för svar!

Permalänk
Hedersmedlem

Äh, konkatenera ihop en sträng istället.

<?php // Hämta data bla bla bla, sen: $theBigString = ""; while ($row = mysql_fetch_row($result)) $theBigString =. $row['theField']; ?> <textarea><?php echo($theBigString); ?></textarea>

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av Teetow
Äh, konkatenera ihop en sträng istället.

<?php // Hämta data bla bla bla, sen: $theBigString = ""; while ($row = mysql_fetch_row($result)) $theBigString =. $row['theField']; ?> <textarea><?php echo($theBigString); ?></textarea>

Hrm.

<?php // Hämta data bla bla bla, sen: $theBigString = ""; while ($row = mysql_fetch_row($result)) $theBigString .= $row['theField']; ?> <textarea><?php echo($theBigString); ?></textarea>

Du hade vänt .= åt fel håll.

Sedan så kör man ju självklart nl2br() på strängen när man skriver ut den, inte när man lagrar den i databasen.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.