Avatar billede udu Nybegynder
04. august 2004 - 11:29 Der er 26 kommentarer

Linieskift i textarea, igen

Hej
Jeg skal have nogle data fra brugere på et site. Disse data indtastes i et textarea. Hvis brugeren indtaster noget med linieskift i, bliver disse ikke vist, når dataen senere trækkes ud igen.

Jeg har fundet denne kode:
<textarea cols="50" rows="4" name="besked"><%=replace(rs("besked"),"<br>",vbCrLf)%></textarea>
men den virker ikke.

Jeg bruger en Access database og programmere mine ASP sider med JavaScript, så det er nok det der er problemet.
Avatar billede keysersoze Ekspert
04. august 2004 - 11:44 #1
det hedder

<%=replace(rs("besked"),VbCrLf,"<br>"%>
Avatar billede hansdam Nybegynder
04. august 2004 - 11:44 #2
http://hdhp.dk/exp/Linjeskift_textarea/

Håber det kan hjælpe... Eller kan jeg sagtens uddybe det med Access
Avatar billede para7 Nybegynder
04. august 2004 - 11:46 #3
Er du sikker på at der i db feltet er nogen <br>
Avatar billede hansdam Nybegynder
04. august 2004 - 12:32 #4
Jeg har lige udviddet mit eks lidt :P
Avatar billede eagleeye Praktikant
04. august 2004 - 12:32 #5
Det virker kun hvis du har <br> og det virker ikke hvis der står <BR> da replace er case-sensitiv.

Så prøv at lave din replace sådan her, så den ikke er case-sensitiv:

<%=replace(rs("besked"),"<br>",vbCrLf,1,-1,1)%>
Avatar billede udu Nybegynder
04. august 2004 - 13:07 #6
Det er nok mig der er tungnem.
Det giver stadig fejlmeddelelse.
Min samlede kode ser således ud:

<% @language=JavaScript %>
<html>
<body>
<form name="tekst" action="gem_i_bog.asp" method="post">
<p>Dato: &nbsp; <input type="text" name="dato" value="00-00-0000" size="8"></p>
<p>Her kan du skrive din besked:</p>
<p><textarea name="besked" rows="10" cols="60">
<%
=replace(rs("besked"),VbCrLf,"<br>")
%>
</textarea>
</p>
<p><input type="submit"  value="Gem"></p>
</form>
</body>
</html>

og den giver mig en fejlmeddelelse for denne asp-side med
Microsoft JScript runtime error '800a138f'
og Object expected
Avatar billede keysersoze Ekspert
04. august 2004 - 13:17 #7
Hvor laver du opslaget i databasen? Du kan ikke kalde et recordset (rs("besked")) hvis ikke du først har lavet dit opslag i databasen.

Du skal først lave din replace når du trække data ud fra databasen - du skal ikke gøre det hverken når brugerne skriver eller når det gemmes i databasen. Først når det skal vises igen.
Avatar billede udu Nybegynder
04. august 2004 - 13:35 #8
Jeg sagde jo at jeg var tungnem.
Så har jeg lagt det i opslaget i databasen og får så en fejlmeddelelse om at VbCrLf is undefined.
Avatar billede keysersoze Ekspert
04. august 2004 - 14:49 #9
i opslaget - jamen, du skal først skrive det når du udskriver. Fx;

SQL = "Select * from tabel where id = 2"
set rs = conn.execute(SQL)

response.write replace(rs("tekst"),VbCrLf,"<br>")
Avatar billede udu Nybegynder
04. august 2004 - 14:58 #10
Ja men uanset hvor jeg placerer VbCrLf bryder den sig ikke om det, formentlig fordi jeg bruger JavaScript til mine asp sider.
Avatar billede krc_ Nybegynder
04. august 2004 - 15:32 #11
Unskyld at jeg lige blander mig med et spgm. Men jeg søger selv noget i samme stil, men forstår måske ik helt hvad det er der sker rent teknisk.
Er det meningen at man i textarea-feltet skal skrive <br> og så erstatter linien response.write replace(rs("tekst"),VbCrLf,"<br>") <br> med et linieskift i udskriften ?
Avatar billede krc_ Nybegynder
04. august 2004 - 15:32 #12
Undskyld :D
Avatar billede keysersoze Ekspert
04. august 2004 - 15:42 #13
hvis du bruger javascript så er syntaksen anderledes - og så vil du ikke kunne bruge det vi har foreslået.

Jeg kender ikke syntaksen men prøv at søg på google
Avatar billede eagleeye Praktikant
09. august 2004 - 23:36 #14
Så prøv sådan her:

<%
str = rs("besked");
Response.Write (str.replace(VbCrLf,"<br>"));
%>
Avatar billede udu Nybegynder
10. august 2004 - 09:24 #15
Til krc Det er meningen at man i en formular (til en database) i et tekstarea kan lave et linieskift, der så når man udskriver fra databasen bliver til et linieskift.
Til eagleeye Det har jeg prøvet dog med \n i stedet for VbCrLf men svaret er: Object doesn't support this property or method
Det kan jeg ikke forstå da replace er et string object i rigtig JavaScript ganske vist først fra JavaScript 1.3 eller nyere.
Avatar billede eagleeye Praktikant
10. august 2004 - 09:32 #16
Hvis det hele koden kommer fejlen i linjen med rs("besked"). Du har ikke i det viste kode åbnet et recordset som henter fra en database, eller er det et andet sted i kodne?
Avatar billede eagleeye Praktikant
10. august 2004 - 09:34 #17
Men hvis det skal ind i et textarea er det også omvendt så det <br> som skal blive til vbCrLf  eller \r\n
Avatar billede eagleeye Praktikant
10. august 2004 - 09:34 #18
Response.Write (str.replace("<br>","\r\n"));
Avatar billede udu Nybegynder
10. august 2004 - 09:52 #19
Jeg kalder databasen og åbner recordset med
rs.Open();
så fortsætter jeg med:
var tekst;
tekst= rs("besked");
der lægger teksten fra databasen ind i en variabel
og så skriver jeg teksten ud idet jeg beder om at linieskift der er lagt ind i databasen (da det blev indbrettet fra formularen) erstattes med <br>
Response.Write(tekst.replace(\n,"<br>"));
eller måske skulle det være
Response.Write(tekst.replace(/\n/g, "<br>")); jfr http://www.echoecho.com/dk/qrstring.htm
men ASP med javaScript vil ikke acceptere replace
Avatar billede eagleeye Praktikant
10. august 2004 - 09:58 #20
Ja det rigtigt der skal være med /g for den tager dem alle, men du skal skifter <br> med \n og ikke omvendt.

Response.Write (tekst.replace(/<br>/g,"\r\n"));


Så hvis du ikke har replace på men bare udskrier teskt så virker det?
Avatar billede udu Nybegynder
10. august 2004 - 10:01 #21
Ja det er der ingen problemer med
Avatar billede udu Nybegynder
10. august 2004 - 10:04 #22
med dit forslag stadig fejlmeddelelse:

Object doesn't support this property or method
Avatar billede eagleeye Praktikant
10. august 2004 - 10:09 #23
Det ved jeg ikke så, for den linje virker fint hos mig.
Så det måske fordi serveren køre med en gammel udgave af Jscript?
Hvilken type server er det?
Avatar billede udu Nybegynder
10. august 2004 - 14:08 #24
Det aner jeg faktisk ikke, vi kører hos KMD (kommunedata) så det skulle være i orden.
I min "rigtige" brug - en arrangementkalender - har jeg på 1½ år kun haft en enkelt bruger der havde lavet en beskrivelse der blev ulæselig fordi der manglede linieskifte, så det er ikke noget stort problem, men det irritere mig.
Avatar billede udu Nybegynder
19. august 2004 - 10:52 #25
Du har nok aligevel ret i at det er min server.
Jeg har lige fået at vide at vi skal flyttes over på en ny server og at den nuværende ikke har været opdateret i en længere periode.
Når vi er flyttet over vender jeg tilbage, det tager nok et par måneder ;-)
Avatar billede kotelet Nybegynder
19. oktober 2004 - 22:34 #26
Jeg har lige brugt dette spm. Det virker fint for mig nu
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
Kurser inden for grundlæggende programmering

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