Avatar billede labisama Nybegynder
28. maj 2009 - 22:03 Der er 11 kommentarer og
1 løsning

Linjeskift i textarea

Hey.

Burde jeg ikke kunne se et linjeskift således:

<textarea>her er et linje\nskift</textarea>

I så fald, så bliver \n bare udskrevet istedet for at lave et linjeskift.

Hvordan skal det gøres?
Avatar billede keysersoze Ekspert
28. maj 2009 - 22:20 #1
<textarea>her er et linje

skift</textarea>
Avatar billede labisama Nybegynder
28. maj 2009 - 22:35 #2
Er ikke helt med på dit svar?
Avatar billede keysersoze Ekspert
28. maj 2009 - 22:54 #3
lav linjeskift i din kilde - præcis som mit eksempel.
Avatar billede webweaver Praktikant
29. maj 2009 - 00:44 #4
Skal linieskiftes gemmes i en database fx?

Altså hvis en person udfylder textfeltet og benytter sig af linieskift?

I såfald,

$besked = nl2br(htmlentities($_POST['besked']));
Avatar billede webweaver Praktikant
29. maj 2009 - 00:45 #5
Det skal lige siges at vi er ovre i PHP ved mit svar.
Avatar billede labisama Nybegynder
29. maj 2009 - 09:43 #6
webweaver > Slet ikke det jeg spørger efter.

#3 > Men nu er det sådan at indholdet i textarea bliver udskrevet fra en PHP-variabel.

Så spørgsmålet er nok mere PHP-relatereret nu, kan jeg forstå.
Avatar billede labisama Nybegynder
29. maj 2009 - 09:44 #7
Fx.

<?
echo '<textarea>'.$streng.'</textarea>';
?>
Avatar billede webweaver Praktikant
29. maj 2009 - 10:43 #8
Så vidt jeg kan se, er vi stadig ovre i noget ala det samme.
Om html entities bliver brugt på en variabel udfyldt af en bruger, eller dig selv burde være det samme.

$string = "Dette er en test.

Det skal stå på 2 linier";
                               
$string = nl2br(htmlentities($string));   
echo '<textarea>'.$string.'</textarea>';
Avatar billede mclemens Nybegynder
29. maj 2009 - 12:17 #9
Hvis \n bare bliver outputtet som \n istedet for newline er det muligvis fordi der er en slash foran \n (\\n) i dit output eller fordi du outputter med ' ' istedet for " " prøv med:

echo"<textarea>hej\nhej</textarea>";

eller

echo"<textarea>".htmlentities(stripslashes($str))."</textarea>";
(hvor $str erstattes af din $_POST / $_GET variabel m.v.)

...

- nl2br giver ingen mening ved output i textarea
(medmindre man ikke ønsker linjeskift repræsenteret
som linjeskift men <br> istedet ... det giver dog
mening ved forberedelse til input i databasen ...)
Avatar billede mclemens Nybegynder
29. maj 2009 - 12:19 #10
(^ - Og såfremt det så skal retur fra br til newline er
en pregreplace nok på sin plads http://dk.php.net/manual/en/function.nl2br.php - kommentaren 29-Oct-2008 03:41)
Avatar billede labisama Nybegynder
29. maj 2009 - 19:24 #11
Det virker nu.

Jeg havde sat '' istedet for "". Det troede jeg ikke havde sådan en betydning.

Så mclemens smid svar.

I andre, ellers tak.
Avatar billede mclemens Nybegynder
29. maj 2009 - 20:56 #12
Velbekom, og tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester