Avatar billede jeppe81 Nybegynder
08. december 2004 - 09:19 Der er 5 kommentarer og
1 løsning

brake line til en gæstebog

Hej jeg er ved at lære asp, og er ved at lave en gæstebog, problemet er at når jeg laver lange sætninger uden mellemrum så ændre størelsen på tabellerne sig.

Derfor kunne jeg godt tænke mig at vide hvordan man kan lave et lineskift efter f.eks. 30 tegn.

Kode:

<form action="gbook.asp?do=send" name="gbookinput" OnSubmit="return checkform();" method="POST">
    <table width="100%" height="146"  border="0" cellpadding="0" cellspacing="0">
      <tr colspan="3">
        <td width="35%" height="26">&nbsp;</td>
        <td width="6%">Name:</td>
        <td width="55%"><input onblur="if(!!this.value.match(/['\$%]/)){alert('You are not allowed to use any of these letters /[\'$%]/');this.select();this.focus();}" name="navn" type="text" class="border" id="navn" size="30"></td>
        <td width="4%">&nbsp;</td>
      </tr>
      <tr colspan="3">
        <td height="26">&nbsp;</td>
        <td>Subjekt:</td>
        <td><input onblur="if(!!this.value.match(/['\$%]/)){alert('You are not allowed to use any of these letters /[\'$%]/');this.select();this.focus();}" name="overskrift" type="text" class="border" id="overskrift" size="30"></td>
        <td>&nbsp;</td>
      </tr>
      <tr colspan="3">
        <td height="70">&nbsp;</td>
        <td>Message:</td>
        <td><textarea onblur="if(!!this.value.match(/['\$%]/)){alert('You are not allowed to use any of these letters /[\'$%]/');this.select();this.focus();}" name="besked" cols="29" class="border"></textarea></td>
        <td>&nbsp;</td>
      </tr>
      <tr colspan="3">
        <td height="24">&nbsp;</td>
        <td>&nbsp;</td>
        <td><input name="submit" type="submit" id="submit" value="Submit"></td>
        <td>&nbsp;</td>
      </tr>
    </table>
    <p align="center">&nbsp;</p>
  </form>
  <p>&nbsp;</p>
</center>

Hvis det skal gøres med SQL sætningen så får i bare koden til det :)
Avatar billede tofte Juniormester
08. december 2004 - 11:54 #1
Du kan bruge følgende lille funktion. Funktionen smider du bare et sted på din side i din kode:
function breakLine(s,lg,breaker)
    dim arr,tmp,a,line
    arr = split(s," ")
    tmp=""
    line=""
    for a = 0 to Ubound(arr)
        if (len(line)+len(arr(a))+1)>=lg then
            tmp=tmp&line&breaker
            line=""
        end if
            line=line&arr(a)&" "
    next
    if len(line)>0 then tmp=tmp&line

    breakLine = tmp
end function

eks
str ="Dette er min meget lange tekst som jeg gerne vil have delt"
s2 = breakline(str,30,"<BR>")
s2 er så den nye streng som er delt.,
Avatar billede jeppe81 Nybegynder
08. december 2004 - 14:56 #2
den laver godt nok et brake men den laver det før teksten begynder og ikke pr f.eks. 30 tegn?
Avatar billede tofte Juniormester
08. december 2004 - 17:00 #3
jeg er ikke helt med på hvad der ikke virker.
Hvis jeg skriver
<%=breakline("Dette er min meget lange tekst som jeg gerne vil have delt",30,"<BR>")%>
i min tekst bliver resultatet :
Dette er min meget lange
tekst som jeg gerne vil have
delt
Avatar billede jeppe81 Nybegynder
09. december 2004 - 10:33 #4
min fejl jeg kunne ikke få det til at virke igår, men det virker nu, det eneste problem jeg så har nu er at når man skriver et Laaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaangt ord så bryder den det ikke op.

Du har fået dine point men håber du kan hjælpe :)
Avatar billede tofte Juniormester
09. december 2004 - 10:46 #5
ok, jeg troede du vil have dem til at opbryde sætninger efter mellemrum. Men jeg kan også godt lige lave det andet. Har ikke tid nu, men jeg burde få tid i aften.
Avatar billede tofte Juniormester
09. december 2004 - 19:13 #6
prøve følgende
function breakLine(s,lg,breaker)
    dim arr,tmp,a,line
    arr = split(s," ")
    tmp=""
    line=""
    for a = 0 to Ubound(arr)
        if len(arr(a))<=lg then
            tmp=tmp&arr(a)&" "
        else
            b=0
            while b*lg<len(arr(a))
                if ((b+1)*lg)<=len(arr(a)) then
                tlg=lg
                tmp=tmp&mid(arr(a),b*lg+1,tlg)&breaker
                else
                tlg = (len(arr(a))-b*lg)
                tmp=tmp&mid(arr(a),b*lg+1,tlg)
                end if
                b=b+1
            wend
            tmp=tmp&" "
        end if
    next
    breakLine = tmp
end function
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