10. marts 2006 - 13:22Der er
14 kommentarer og 1 løsning
enter til <br>
Hvordan skal koden se ud: Jeg ønsker at kunne indtaste en masse tekst i et almindelig tekst felt og dermed også at enter(ny linje) skal lagres sammen med alt det andet, men hvordan gøres dette ?
OG
hvordan trækker man det så ud så det kommer UD som mellemrum
Øøh, det sidste forstod jeg ikke lige, men jeg vil da anbefale at du formaterer det idet du viser det, så skal du ikke tænke på formateringen andre steder i systemet (hvis du f.eks. skal bruge data til andet end præsentation, kan det være træls at du skal udskifte <br> til alm. linieskift).
Umiddelbart ville jeg selv lagre teksten i det oprindelige format, og så formatere det når jeg skulle præsentere teksten.
Performancemæssige overvejelser kan dog tale for, at man formaterer data når de gemmes i databasen. Så behøver du ikke gøre noget idet du trækker data ud til præsentation. Du skal så bare fjerne formateringen når data skal vedligeholdes, men det er noget du skal gøre op med dig selv og dine aktuelle behov.
Uanset om du vælger den ene eller den anden løsning, så ændrer det ikke på at du kan bruge den metode jeg skitserede i første post - det er bare et spørgsmål om hvornår du foretager formateringen.
vbCrLf er en VBScript-konstant der netop er linieskift (Carriage return + Linefeed) og det er den du vil søge efter når du skal udskifte et linieskift i et textarea (det kan godt være det er anderledes når teksten kommer fra en linux-baseret browser - det har jeg ikke så meget erfaring med)...
Ja, det er også meg at holde tungen lige i munden, når man transporterer data frem og tilbage og hvad der skal ændres hvornår. Man kan godt komme til at rode det sammen til tider... :)
Men som jeg startede med at sige, så skal du tænke på hvordan din applikation bliver brugt og hvad der giver bedst mening ifht. performance og vedligeholdelsesvenlighed (ofte to faktorer der modarbejder hinanden :)) og så ud fra det vælge den løsning som passer bedst. Det første spørgsmål jeg ville stille migselv i dit tilfælde var, hvor ofte vedligeholdes teksterne ifht. hvor ofte de vises... mit gæt er at de vises væsenligt hyppigere end vedligeholdes, så på den konto, giver det mening at gemme teksten formateret med <br>.
Der er naturligvis andre overvejelser du kan gøre, men jeg har lidt på fornemmelsen at det for de fleste er et spørgsmål om temperament, da de færreste behøves tænke på de ekstra cycles CPU'en skal bruge for at kalde replace lidt oftere, eller den plads man bruger ekstra i databsen for at gemme teksten formateret...
<% id = request.form("id") tekst = replace(replace(request.form("S1"), vbCrLf, "<br>"),"'","''") sql = "UPDATE tabel SET tekst = '" & tekst & "' WHERE id = " & id conn.execute(sql) %>
Visning af teksten i en webbrowser (rs indeholder den formaterede tekst fra databasen):
<% set rs = conn.execute("SELECT tekst FROM tabel WHERE id = " & id) if not rs.eof then tekst = rs("tekst") end if rs.close %> <p><%=rs("tekst)%></p>
...og der antages naturligvis at du har oprettet en forbindelse til databasen som ligger i variablen conn og at de fornødne felter er tilgængelige osv. Eksemplerne sigter kun efter at illustrere den ønskede funktionalitet.
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.