Avatar billede frido Nybegynder
14. februar 2002 - 15:27 Der er 2 kommentarer og
1 løsning

Linebreak ved max. 50 chars (så tabellen beholder sin størrelse)

Har en gæstebog hvor indslagene bliver gemt i en database, data læses fra den og bliver skrevet ind i tabellen til gæstebogen. Hvis man f.eks skriver et ord på over 50 chars, kommer den til at "ødelægge tabellen" ved at forstørre den. Det må den ikke, så derfor skal jeg bruge et linebreak ved 50 chars. How do I do?

Scriptet her:

<table width="100%" border="0" cellspacing="2" cellpadding="2" align="center" class="maintext">
                    <form name="form" method="post" action="guestbook-skriv.asp" onSubmit="validering();return false";>
                      <tr>
                        <td colspan="2">
                          <input type="hidden" name="dato" value="<%=Now%>">
                        </td>
                      </tr>
                      <tr>
                        <td valign="top">
                          <p>Navn:
                            <input type="text" name="navn">
                          </p>
                        </td>
                        <td valign="top">Email:
                          <input type="text" name="email">
                        </td>
                      </tr>
                      <tr>
                        <td colspan="2">Kommentar:
                          <textarea name="kommentar" wrap="PHYSICAL" cols="50" rows="5" ></textarea>
                        </td>
                      </tr>
                      <tr>
                        <td align="right">
                          <input type="submit" name="send" value="Send">
                        </td>
                        <td>
                          <input type="reset" name="Reset" value="Nulstil">
                        </td>
                      </tr></form>
                      <tr>
                      <td colspan="2">
<!-- script til at vælge det jeg har valgt i drop down-menuen uden at trykke "ok"-->
<script language="Javascript">
function selectIndlaeg()
{
document.limitform.submit();
}
</script>
<!-- selve drop down-menuen-->
<form method="post" action="guestbook.asp" enctype="application/x-www-form-urlencoded" name="limitform">
Vis <select name="limitform" onchange="selectIndlaeg()">
<option selected value="">antal</option>
<option  value="10">10</option>
<option  value="25">25</option>
<option  value="50">50</option>
<option  value="75">75</option>
<option  value="100">100</option>
<option  value="*">Alle</option>
</select>
indl&aelig;g</form>
</td>
</tr>
                      <tr>
                        <td colspan="2">
                          <hr noshade align="center" size="1">
                        </td>
                      </tr>
                      <tr>
                        <td colspan="2" class="maintext"> 
<!-- selve ASP scriptet-->
                          <%
Set Conn = Server.CreateObject ("ADODB.Connection")
DSN ="DRIVER={Microsoft Access Driver (*.mdb)};"
DSN = DSN & "DBQ=" & Server.MapPath ("/guestbook/database.mdb")
Conn.Open DSN

<!--indsætter værdi af drop-down menuen-->
Dim Count
Count = Request.Form("limitform")
If Count = "*" Then
  strSQL = "Select * FROM data Order by Dato DESC"
ElseIf Count = "" Then
  strSQL = "Select TOP 10 * FROM data Order by Dato DESC"
Else
  strSQL = "Select TOP " & Count & " * FROM data Order by Dato DESC"
End If

Set rs = Conn.Execute(strSQL)
Do

<!-- udtræk fra databasen-->
strEmail = rs("email")
strLink = "<a href=mailto:" & rs("email") & ">" & strEmail & "</a><BR><BR>"
Response.Write rs("dato") & "<BR><BR>"
Response.Write "Navn: " & rs("navn") &"<BR>"
Response.Write "Email: " & strLink
Response.Write rs("kommentar") & "<BR><BR><HR noshade size=1>"

rs.MoveNext
Loop While Not rs.EOF
Conn.Close
Set Conn = Nothing
%>

Har set et sted at man kan indsætte følgende:

Function ParseString(ByVal String)
intCount = 1
Do While intCount <= Len(String)
strCount = strCount + 1
If strCount = 50 Then
New_String = New_String & "<br>" & Mid(String, intCount, 1)
strCount = 0
Else
New_String = New_String & Mid(String, intCount, 1)
End If
intCount = intCount + 1
Loop
ParseString = New_String
End Function

Men her er mit problem at jeg er total newbie - HVOR indsætter jeg koden, ER der noget jeg skal ændre i, og i givet fald, hvor og til hvad? Det er easy money det her! ;)
Avatar billede kennethrisum Nybegynder
14. februar 2002 - 15:44 #1
Du indsætter koden i starten af dit ASP. Herefter ændrer du linien:

Response.Write rs("kommentar") & "<BR><BR><HR noshade size=1>"

Til

Response.Write ParseString(rs("kommentar")) & "<BR><BR><HR noshade size=1>"

Forudsat at det er feltet kommentar, der ikke må blive for stort i HTML koden.
Avatar billede frido Nybegynder
14. februar 2002 - 15:56 #2
Men det virker ikke med caps lock slået til - altså, det virker vist kun med små chars?!?
Ellers er det godt nok, men synes selv det er lidt underligt..
Kennethrisum - det var vel nok easy money der hva' ;)
Avatar billede kennethrisum Nybegynder
14. februar 2002 - 16:05 #3
Det skulle virke med store chars. Muligvis er det fordi store chars er bredere og derfor ødelægger designet. Prøv at sætte linien

If strCount = 50 Then

Til

If strCount = 40 Then

eller andet.

P.S. Det var lette point. Skylder dig en ;-)
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