Avatar billede f-andersen Nybegynder
13. december 2005 - 09:31 Der er 13 kommentarer og
1 løsning

Indsætte br tag i textarea

Hej

Jeg har brug for at kunne lave nogle knapper: <br> <b> </b> så når man trykker på dem, så bliver de sat ind i min textarea.. Hvordan gør jeg det? Jeg benytter HTML / PHP.

Hvis det kan blive sådan at man kan markere en tekst fx:

[Denne tekst har jeg markeret] og så når jeg trykker på FED knappen så ser det sådan ud:
<b>Denne tekst har jeg markeret</b>

Er det noget nogen kan hjælpe mig med?
Avatar billede fennec Nybegynder
13. december 2005 - 09:41 #1
Du skal have fat i en WYSIWYG editor. Du kan finde en liste her:
http://www.geniisoft.com/showcase.nsf/WebEditors

Jeg har ikke selv prøvet en af de gratis på listen, men vil tro TinyMCE er en god en, da den er understøttet af mange browsers.
Avatar billede jokkejensen Novice
13. december 2005 - 09:43 #2
http://tinymce.moxiecode.com/example_full.php?example=true

Den er gratis, levere xHtml og er skide let at få til at se ud som man ønsker..

Held og lykke
Avatar billede jokkejensen Novice
13. december 2005 - 09:43 #3
hæh, fennec, havde ikke lige set din :)
Avatar billede f-andersen Nybegynder
13. december 2005 - 09:44 #4
Er det ikke noget jeg selv kan skrive mig ud af ?
Avatar billede f-andersen Nybegynder
13. december 2005 - 09:45 #5
Jeg har faktisk kun brug for

<br>
<b> & </b>
<i> & </i>
<u> & </u>

Eller hvis den fx automatisk, som den gør her på eksperten, når man går ned på næste linie, så indsætter den vel automatisk en br?
Her?
Avatar billede fennec Nybegynder
13. december 2005 - 09:53 #6
Du kan selvfølgelig godt lave din egen WYSIWYG, men det er højest sansynlig nemmere at bruge en eksisterende :o)

Desuden er <br> den nemmeste af alle koder at udskifte, da der automatisk bliver lavet et linjeskift i et textarea element. Problemet er at finde mærkeret tekst, og indsætte start/slut tags.

I sidste ende vil jeg anbefale at bruge en færdig kode. Du skal højest bruge et par timer på at indsætte den, og har du først fundet ud af det, tager det ikke mere end et par min at gøre bagefter. Du kan let komme til at bruge resten af ugen på at lave din egen WYSIWYG.
Avatar billede f-andersen Nybegynder
13. december 2005 - 10:05 #7
Jeg har slet ikke brug for alle de funktioner.. Men hvordan laver jeg sådan at mit textarea selv fatter at når jeg trykker på enter, så skal den indsætte en <br> ?

Jeg vil faktisk gerne selv lave det :)
Avatar billede fennec Nybegynder
13. december 2005 - 10:17 #8
I php er der indbygget en funktion til det:
nl2br(dinTekst)

ref: http://dk2.php.net/manual/da/function.nl2br.php

Den tekst som et textarea returnere, indeholder en kode for linjeskift. Den kode udskifter man bare med <br>. Så når teksten skal udskrives igen, kører du den bare igennem funktionen.

Alle de andre tags ved jeg ikke hvordan man indsætter, da jeg absolut ingen ide har om hvordan man finder den mærkeret tekst.

Men hvad med at tage et kik på den simple udgave af TinyMCE. Den indeholder præsis de ting du ønsker:
http://tinymce.moxiecode.com/example.php?example=true
Avatar billede f-andersen Nybegynder
14. december 2005 - 10:36 #9
Jeg har kigget på den simple tinymce. Men jeg synes der er meget konfiguration, inden jeg kan få det flettet ind i mit design.

Jeg vil lige kigge på nl2br... Er meningen med denne at, hvergang jeg trykker på [Enter] så indæstter den faktisk en "skjult" <br>?
Avatar billede fennec Nybegynder
14. december 2005 - 11:14 #10
På en måde.

Problemet ligger i at HTML bruger <br> til linjeskift og ikke den normale kode (kendt som 13 i ASCII, vbcrlf i ASP og \n i JavaScript). Et textArea bruger netop den "rigtige" kode for linjeskift, hvorfor der er uoverensstemmelser.

Det nl2br() funktionen gør er bare en ganske alminde replace funktion, hvor den udskifter linjeSkift koden med <br>. Den "korte" funktione har vi ikke i ASP, så vi må selv lave replacen:
replace("tekstFraTextArea",vbcrlf,"<br>")

I stedet for at bruge nl2br(), kan du altså selv lave det med PHP's replace funktion:
echo str_replace("\n", "<br>", "tekstFraTextArea");
echo nl2br("tekstFraTextArea");

Burde altså give samme resultat (er ikke sikker på om PHP bruger "\n" som linjeskift).
Avatar billede roenving Novice
14. december 2005 - 17:22 #11
Kig f.eks. på skovenborgs insertTag(): http://skovenborg.1go.dk/javascript/insertTag.php !-)
Avatar billede f-andersen Nybegynder
15. december 2005 - 18:44 #12
roenving, det spiller bare :)

Smider du et svar?
Avatar billede roenving Novice
15. december 2005 - 23:49 #13
Velbekomme '-)
Avatar billede roenving Novice
16. december 2005 - 16:54 #14
-- 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