Avatar billede forcedesigner Nybegynder
29. juni 2002 - 15:18 Der er 10 kommentarer og
1 løsning

Linieskift kommer ikke med....

Hejsa alle sammen.

Jeg har en nyheds system som ikke tager sig af liniskift, lige meget mange man lave.

nyhed.asp er den der tilføjer nyhed i DB:

<%
Response.Buffer = True

' Funktion der fikser quotes...
FUNCTION fixQuotes( theString )
    fixQuotes = Replace( theString, "'", "''" )
END FUNCTION

' Hent data fra formular   
    Nyhed = Request( "Nyhed" )
    Forfatter = Request( "Forfatter" )

' Connection til database.    
Set Con = Server.CreateObject( "ADODB.Connection" )
    DBPath = "DBQ=" & server.mappath("nyheder.mdb")
    Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

' ... Ogsaa saetter vi vores data fra formularen ind i databasen
if Request.Servervariables("Content_Length") > 0 THEN
    Sql = "INSERT INTO nyheder (Dato, Nyhed, Forfatter) VALUES('" & Date() & "','" & fixQuotes( Nyhed ) & "','" & fixQuotes( Forfatter ) & "')"
    Con.Execute Sql

' Og her skriver vi lige en lille besked om at nu er nyheden tilfoejet   
    Response.Write "<strong>Tak for din nyhed. </strong>"
   
end if
%>


visnyheder.asp er den der henter nyhederne fra DB:

<%
Response.Buffer = True

' Connection til database
Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("nyheder.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

' Her hiver vi indholdet af databasen ud, sorterer dem efter dato
    Sql = "SELECT * FROM nyheder ORDER BY Dato DESC"
    Set Record =  Con.Execute(Sql)
%>

<html>

<head>
<meta http-equiv=Content-Language content=ar-sa>
<meta http-equiv=Content-Type content=text/html; charset=windows-1256>

</head>

<body>

<table border="0" cellspacing="0" width="550">
    <tr>
        <td align="center" colspan="2"><h1><font size="1" face="Verdana">Nyheder</font></h1></td>
    </tr>
    <tr><td><font size="1" face="Verdana">&nbsp;</font></td></tr>

<!-- Her nedenunder smider vi saa nyhederne ud i en tabel -->

<% Do While Not Record.EOF %>

        <td bgcolor="#999966"><font size="1" face="Verdana"><% Response.Write Record("Dato")%></font></td>
        <td bgcolor="#999966" align="right"><font size="1" face="Verdana">Fra <i><% Response.Write Record("Forfatter")%></i></font></td>
    <tr>
        <td colspan="2"><font size="1" face="Verdana"><% Response.Write Record("nyhed") %></font></td>
    </tr>
    <tr><td><font size="1" face="Verdana">&nbsp;</font></td></tr>
<%
Record.MoveNext
Loop
%>

<!-- Og her har den saa gjort det, og vi kan afslutte dokumentet -->
</table>

</body>
</html>
<%
' Lukke connection
Con.Close
Set Con = Nothing
%>

Jeg ved der er en kode til det, men hvilket er den??

Skal den i nyhed.asp eller skal den i visnyheder.asp??

Hvor skal den sidde i koden??

Tak, håber i kan hjælpe mig.
Avatar billede eagleeye Praktikant
29. juni 2002 - 15:43 #1
Hvis du bruger linie skift som [enter]-tasken skal du konverter den til HTML enter som er <br>..

response.write replace(rs("kolonnenavn"),vbCrLf,"<br>")
Avatar billede eagleeye Praktikant
29. juni 2002 - 15:44 #2
Hvis du vil havde det i databasen kan du når den hendter nyheden fra formen lave linien sådan her:

Nyhed = reeplace(Request( "Nyhed" ),vbCrLf,"<br>")
Avatar billede forcedesigner Nybegynder
29. juni 2002 - 15:47 #3
Jeg forståd det ikke....eagleeye
Avatar billede forcedesigner Nybegynder
29. juni 2002 - 15:51 #4
<% Nyhed = replace(Request( "Nyhed" ),vbCrLf,"<br>") %>

Hvor skal den sidde?? i Nyhed.asp eller visnyheder.asp og hvor i koden?
Avatar billede eagleeye Praktikant
29. juni 2002 - 15:52 #5
Hvis du skriver en nyhed i et textarea og bruger return tasten til at lave mellemrun sådan her:
Hej
Dette er en nyhed
Slut

enter tasten giver ikke linie skifte i en browser så teksten bliver til:
HejDette er en nyhedSlut

Derfor skal man konverter return til HTLM-return som er <br> det gøre med replace, vbCrLF er koden for return/enter tasten som ligger i tekstregen.

Når du har konverteret til <br> og kikker med en tekst editor står der:
Hej<br>Dette er en nyhed<br>Slut

Men skriver du det ud i en browser står der:
Hej
Dette er en nyhed
Slet
Avatar billede eagleeye Praktikant
29. juni 2002 - 15:55 #6
Sprøgsmålet er om du vil gemme din tekst med vbCrLf i eller om du vil gemme teksten med <br> i.

Hvis du gemmer med vbCrLf, skal du konvertere når man udkriver teksten til browseren, men ikke hvis man eks skriver teksten i en mail eller senere skal rette i teksten med et text area.

Hivs du gemmer med <br> kan man direkte udskrive nyheden til browseren. Så skal man konvertere <br> til vbCrLf hvis du vil sende den med mail eller rette i den i et textarea.
Avatar billede forcedesigner Nybegynder
29. juni 2002 - 15:55 #7
Ja det ved jeg, men den skal lave linieskiftet automatisk.
Avatar billede eagleeye Praktikant
29. juni 2002 - 15:56 #8
Hvis du vil beholde vbCrLf i databasen så retter du denne linie:
<% Response.Write Record("nyhed") %>

Til:
<% replace(Response.Write Record("nyhed"),vbCrLf,"<br>" %>
Avatar billede eagleeye Praktikant
29. juni 2002 - 15:58 #9
Hvis du vil gemme <br> i databasne skal du rette denne linie:
' Hent data fra formular   
    Nyhed = Request( "Nyhed" )

Til:
    Nyhed = replace(Request( "Nyhed" ),vbCrLf,"<br>")
Avatar billede eagleeye Praktikant
29. juni 2002 - 15:59 #10
Du behøver kun at rette det det ene eller det andet sted.
Avatar billede forcedesigner Nybegynder
29. juni 2002 - 16:07 #11
Tusind Tak, det virker...yess
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