08. december 2004 - 09:19Der 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"> </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%"> </td> </tr> <tr colspan="3"> <td height="26"> </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> </td> </tr> <tr colspan="3"> <td height="70"> </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> </td> </tr> <tr colspan="3"> <td height="24"> </td> <td> </td> <td><input name="submit" type="submit" id="submit" value="Submit"></td> <td> </td> </tr> </table> <p align="center"> </p> </form> <p> </p> </center>
Hvis det skal gøres med SQL sætningen så får i bare koden til det :)
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.,
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
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.
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.
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
Synes godt om
Ny brugerNybegynder
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.