01. marts 2003 - 12:27Der er
39 kommentarer og 1 løsning
textarea med linieskift
Så prøver jeg i denne kategori.. jeg er ved at lave en admin side hvor man bla skal kunne indtaste noget tekst i et textarea. Det der oprettes bliver vist på en hjemmeside.Indholdet bliver lagt i en mysql database. Men for at det skal se pænt ud på hjemmesiden må længden af hver linie ikke være mere end 50 tegn - hvorfor den så skal skifte linie. Er der mon en venlig sjæl der kan hjælpe med det??
dvs når data bliver lagt i databasen - er jeg yderligere i tvivl om hvordan det bliver lagt i databasen - altså jeg mener - hvad sker der mon når det hives ud af db igen??
det skal jeg altså lige forstå rigtigt - vil det sige at når jeg indtaster noget i et felt der bliver lagt i databasen - så vil der i databasen automatisk blive lavet et vbCrLf hver gang der tastes return??
betyder det at hvis jeg kigger i det felt i databasen så vil der eksempelvis stå:Hej jeg hedder Karen vbCrLf Jeg bor på sjælland vbCrLf Og hvor er jeg glad for at der er nogen der hjælper mig???
Nej du vil ikke kunne se det som vbCrLf. vbCrLf er en VBScript konstant og det er i virkeligheden to karakter efter hinanden: Chr(13) & Chr(10)
Det fuldstændigt det samme som hvis du trykke på tasten b kommer der et b i teksten. Hvis du trykke på Return-tasten kommer det et linieskift som ikke kan se anden end teksten skifter linie, dog ligger der i strengen en vbCrLf karakter som symboliser return tasten.
oki - så er jeg med - men til både medions og eagleeye - kan I ikk hjælpe mig med hvor de kodestumper I har skrevet skal sættes ind i min kode? Altså jeres eksempler mener jeg - hvad skal stå på den side hvor der indtastes noget i textarea og hvad skal stå på den side hvor visningen sker.........visningen sker i en celle i en tabel
Hvis du kigger i din database vil den skifte linie hvor du har trykket på return tasten. Hvis du indtaser dette: "Hej jeg hedder Karen[RETURN-tast]Jeg bor på sjælland[RETURN-tast]Og hvor er jeg glad for at der er nogen der hjælper mig"
Hvis du kigger i databasen vil det højst sansynligt se ud som dette: Hej jeg hedder Karen Jeg bor på sjælland Og hvor er jeg glad for at der er nogen der hjælper mig
Så vbCrLf er bare en konstant man bruger for at kunne finde hvor der er blvet trykket på retun tasten.
hm - det forstår jeg altså ikke rigtigt - undskyld hvis jeg er lidt dum- men alt det kode du har skrevet skal vel ikke stå i kolonnen....skal det ikke være en funktion der så kaldes når formen submittes??
Nej det skal ind på den side som udskriver fra databasen.
Hvad hedder den kolonne du skal udskrive fra?, hvis den ny hedder "kommentar" og du har et recordset rs så har du sikker en linie idag hvor du udskriver:
Response.Write rs("kommentar")
Du skal så havde alt koden ind før man udskriver oå det bliver sådan her:
inputStr = rs("kommentar")
reDim arr(0) str = replace(inputStr,"<br>",vbCrLf) MaxLength = 50 while (LEN(str)>0) splitIndex = InStrRev(str, vbCrLf, MaxLength) if splitIndex = 0 then splitIndex = InStrRev(str, " ", MaxLength) if splitIndex = 0 then splitIndex = LEN(str) end if ReDim Preserve arr(UBOUND(arr) + 1) arr(UBOUND(arr)) = LEFT(str, splitIndex) str = MID(str, splitIndex + 1) wend outStr = "" for i = LBound(arr) to UBound(arr) outStr = outStr & arr(i) & vbCrLf next outStr = replace (outStr, vbCrLf, "<br>")
Det her er et udtræk af hvad der står på den admin side hvor man opretter <form NAME="opretstandard" ACTION="opretreference.asp?funktion=do_opretnystandard" METHOD="post" onsubmit="java script:return Validate();"> <TR> <td>KommentarDK</td> <td><Textarea NAME="kommentardk" style="width:305px;"></textarea></td> </TR> </table></form> Og det her er hvad der står på den side hvor det vises/udskrives <table> <tr> <td align="center" colspan="3"><b><u>Kommentar</u></b></td> </tr> <tr> <td align="left" colspan="3" height="20"><%=res.fields("kommentardk")%></td> </tr> </table> så hvad gør jeg så?
men inden jeg gør det - hvad nu hvis det ikke virker - så må jeg stille spørgsmål igen - altså ikke at jeg tvivler på din ekspertise - men hvis jeg selv kludrer i det - så kan jeg jo ikke være sikker på at du ser mit spørgsmål vel?
Jeg tror på du, kan få det til at virke. Du kan trykke på knappen "Avenceret" så har du muliughed for at tildele X antal point til hver som har svaret. Eller så finder vi nok ud af det. :)
og nu har jeg lige sat koden ind... jeg har øverst i dokumentet dim følgende variabler:inputStr, str, MaxLength, splitIndex, outStr, maxantal
jeg har skrevet funktionen du gav mig således: <% function maxantal(str) inputStr = str reDim arr(0) str = replace(inputStr,"<br>",vbCrLf) MaxLength = 50 while (LEN(str)>0) splitIndex = InStrRev(str, vbCrLf, MaxLength) if splitIndex = 0 then splitIndex = InStrRev(str, " ", MaxLength) if splitIndex = 0 then splitIndex = LEN(str) end if ReDim Preserve arr(UBOUND(arr) + 1) arr(UBOUND(arr)) = LEFT(str, splitIndex) str = MID(str, splitIndex + 1) wend outStr = "" for i = LBound(arr) to UBound(arr) outStr = outStr & arr(i) & vbCrLf next outStr = replace (outStr, vbCrLf, "<br>") maxantal = outStr end function
%>
og inden i formen har jeg skrevet følgende: <tr> <td align="left" colspan="3" height="20"> <%=maxantal(res.fields("kommentardk"))%> </td> </tr> Og jeg får følgende fejlmeddelelse: Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0411) Navnet blev defineret igen /filcon/referencerny.asp, line 3080, column 9 function maxantal(str) --------^ Så hvad har jeg mon gjort galt?
jeg har fundet ud af det - jeg skulle jo ikke dim maxantal.......og det havde jeg gjort.....og jeg havde glemt at dim variabelen i - nu virker det vist .... men nu kan jeg igen ikke give dig point - så du er nødt til at svare så jeg kan give dig point
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.