26. marts 2007 - 22:15
Der er
30 kommentarer og 1 løsning
kontrollere længden af ord
Hej.
Jeg har fundet en god rich text editor :
http://www.dynamicdrive.com/dynamicindex16/richtexteditor/index.htm Jeg vil gerne undgå at brugere kan indtaste lange ord, så horisontal scrolleren kommer frem, og ikke mindst bliver layoutet ødelagt når jeg genindlæser teksten fra databasen.
Hvordan får jeg sat en begrænsning på hvor lange linier kan blive eller antallet af tegn i et ord ??
Annonceindlæg tema
26. marts 2007 - 22:17
#1
har forsøgt med : $tmpvar = wordwrap($row["tekst"], 101,"<br />\n", 1); Men der går ged i den når der eksempelvis er tabeller eller andet med.....
26. marts 2007 - 22:20
#2
så kan det komme til at se sådan her ud : <P>hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh<br /> hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh<br /> hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh</P> <P> <TABLE cellSpacing=0<br /> cellPadding=4 width="100%"<br /> border=1> <TBODY> <TR> <TD> </TD> <TD> </TD></TR> <TR> <TD> </TD> <TD> </T<br /> D></TR></TBODY></TABLE></P>
27. marts 2007 - 05:43
#3
I java script: var tekst = '<P>hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh</P><P><TABLE cellSpacing=0 cellPadding=4 width="100%" border=1><TBODY><TR><TD> </TD><TD> </TD></TR><TR><TD> </TD><TD> </TD></TR></TBODY></TABLE></P>'; tekst = tekst.replace(/(\w{26})/g,"$1 "); alert(tekst); -- så indsættes der ikke noget andre steder end i teksten !-)
27. marts 2007 - 15:56
#4
okay det vil jeg da prøve :-)
27. marts 2007 - 15:58
#5
Har lige et spørgsmål til .. Hvordan får jeg fjernet den view source box fra scriptet ?? Det er her den bliver lavet... document.writeln('<iframe id="' + rte + '" name="' + rte + '" width="' + width + 'px" height="' + height + 'px" src="' + includesPath + 'blank.htm"></iframe>'); if (!readOnly) document.writeln('<br /><input type="checkbox" id="chkSrc' + rte + '" onclick="toggleHTMLSrc(\'' + rte + '\');" /> View Source'); document.writeln('<iframe width="154" height="104" id="cp' + rte + '" src="' + includesPath + 'palette.htm" marginwidth="0" marginheight="0" scrolling="no" style="visibility:hidden; position: absolute;"></iframe>'); document.writeln('<input type="hidden" id="hdn' + rte + '" name="' + rte + '" value="">'); document.writeln('</div>'); document.getElementById('hdn' + rte).value = html; enableDesignMode(rte, html, readOnly); } else { if (!readOnly) { document.writeln('<textarea name="' + rte + '" id="' + rte + '" style="width: ' + width + 'px; height: ' + height + 'px;">' + html + '</textarea>'); } else { document.writeln('<textarea name="' + rte + '" id="' + rte + '" style="width: ' + width + 'px; height: ' + height + 'px;" readonly>' + html + '</textarea>'); } }
27. marts 2007 - 16:03
#6
Sæt readOnly til true under grundvariablerne !-)
27. marts 2007 - 17:30
#7
ja men så kan man ikke skrive i tekstfeltet.....
27. marts 2007 - 18:30
#8
Jeg er også lidt i tvivl om det med javascript du har skrevet imorges.. Det er jo når teksten bliver indlæst fra databasen at det skal i funktion, og ikke når brugeren skriver teksten....hvad gør dit script ??
27. marts 2007 - 18:38
#9
Ja, så skal du nok over i noget php, måske preg_replace eller sådan ... -- men typisk vil den slags jo ske i et forum, hvor nogen forsøger at drille, og så ville jeg simpelthen banne indlægget !-) Scriptet finder forekomster af 26 ordtegn og udskifter det med de 26 ordtegn + et mellemrum, hvorved teksten kan ombrydes automatisk !o]
27. marts 2007 - 18:55
#10
okay, ved du hvordan jeg får klaret det med den view source box ??
27. marts 2007 - 19:12
#11
Fjern de linjer, der skriver feltet og toggle-checkboxen !-)
27. marts 2007 - 19:41
#12
har forsøgt men så virker scriptet ikke.. Yror jeg beholder den. har lige en ting til :-) hvor får jeg $_POST[tekst] skrevet ud uden linjeskift ? Scriptet kan ikke klare linjeskift i $_POST[tekst] Jeg bruger den her : <td><script language="JavaScript" type="text/javascript"> <!-- //Usage: writeRichText(fieldname, html, width, height, buttons, readOnly) writeRichText('post', '<?echo "$_POST[tekst]" ?>', 400, 200, true, false); //--> </script> </td>
27. marts 2007 - 19:41
#13
hvordan får jeg $_POST[tekst] skrevet ud uden linjeskift ? skulle der have stået..
27. marts 2007 - 19:45
#14
Erstat linjeskift med \n !-)
27. marts 2007 - 19:51
#15
er det sådan her ?? : tekst = "$_POST[tekst]"; teskt = tekst.replace(/<br>/gi,\"\\n\");
27. marts 2007 - 19:57
#16
Det kommer an på, hvad du gør, når du modtager teksten, men det lyder næsten rigtigt, hvis det er javascript, du vil gøre det i !-) tekst = tekst.replace(/<br>/gi,"\n");
27. marts 2007 - 21:01
#17
det er lidt svært at forklare, men når html koden sendes i formen ser den feks. sådan her ud : <P><FONT size=5>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P> <P><FONT size=6>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P> <P><FONT size=6>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P> Jeg har så en php fil der validerer indtastningerne i formen, og hvis der er fejlindtastninger i andre felter kommer formen op igen, og der er der problemet er med text editoren der ikke kan klare det her : writeRichText('tekst', '<P><FONT size=5>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P> <P><FONT size=6>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P> <P><FONT size=6>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P>', 400, 200, true, false); fordi det strækker sig over flere linier i koden.. kan jeg undgå det ??
27. marts 2007 - 21:21
#18
jeg har nu prøvet det her : <script language="JavaScript" type="text/javascript"> var tekst='writeRichText('tekst', '<P><FONT size=5>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P> <P><FONT size=6>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P> <P><FONT size=6>rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr</FONT></P>', 400, 200, true, false);' tekst = tekst.replace(//gi,"\n"); </script> <? echo $tekst; exit; ?> Men det virker ikke....
27. marts 2007 - 21:33
#19
Nej, du skal fjerne linjeskiftene før det rammer en javascript-variabel, så det må blive noget i denne henretning: $tekst = preg_replace("/noget/",$_POST["tekst"],$tekst);
27. marts 2007 - 21:42
#20
øhh det der noget hvad er det..?
27. marts 2007 - 21:51
#21
Du er nødt til at gøre det i php !-)
27. marts 2007 - 21:55
#22
ja men problemet er den der writeRichText der ikke fungerer når koden strækkes over flere linier, og det kan jeg vel ikke gøre noget for at undgå ??
27. marts 2007 - 22:06
#23
Du kan da bare fjerne linjeskiftene !-) -- php-variabler må godt indeholde linjeskift, men det må javascript-variable ikke !-)
27. marts 2007 - 22:18
#24
Ja men er lidt forvirret lige nu... :-( Ved ikke hvad der skal stå istedet for "noget " $tekst = preg_replace("/noget/",$_POST["tekst"],$tekst);
27. marts 2007 - 22:47
#26
tror der er noget galt med : $tekst = preg_replace("/\n|\r/g","",$tekst); den er tom, selvom $tekst = $_POST["tekst"]; ikke er det..
27. marts 2007 - 23:05
#27
dette virker, uden jeg ved hvorfor $tekst = $_POST["tekst"]; $tekst1 = preg_replace( "/\r\n/", "", $tekst);
28. marts 2007 - 00:53
#28
Tjah, jeg har måske ikke forstået php-funktionen tilstrækkeligt, men så er det jo godt, at du selv prøver !-)
28. marts 2007 - 15:20
#29
læg et svar, som tak for den store hjælp !
28. marts 2007 - 15:28
#30
Velbekomme '-)
29. marts 2007 - 14:06
#31
-- og tak for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling