|
| Ændre et linjeskift, vbcrlf, til et tag, <~ Fra : Christian Kragh |
Dato : 23-07-08 21:50 |
|
Hej.
Jeg har en funktion der validere noget data, og sender det med
ajax til min server.
Koden:
<script type="text/javascript">
function validering()
{
error = 0;
if((document.forms[0].Titelnavn.value=='') && (error==0))
{
alert('Du skal skrive en titel!');
document.forms[0].Titelnavn.focus();
error = 1;
}
if((document.forms[0].textareanavn.value=='') && (error==0))
{
alert('Du skal skrive en udvidelse!');
document.forms[0].textareanavn.focus();
error = 1;
}
if(error == 0)
javascript:$("#content").load(" http://localhost/TodoList/blog.asp
?&indhold=" + document.forms[0].textareanavn.value);
}
// Slut -->
</script>
Findes der en funktion i Javasctipt, ligesom replace i ASP, der
kan erstatte et linjeskift i en tekststreng med det man nu
ønsker.
Jeg ville i ASP gøre følgende:
replace(streng, vbcrlf, "<br>")
Det tager strengen "streng" og erstatter alle linjeskift, vbcrlf,
med et tag, <br>.
Der må findes noget lignende, men kan ikke lure hvad.
Christian
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Philip Nunnegaard (24-07-2008)
| Kommentar Fra : Philip Nunnegaard |
Dato : 24-07-08 06:08 |
|
"Christian Kragh" <tursoe@gmail.com> skrev
> Jeg ville i ASP gøre følgende:
>
> replace(streng, vbcrlf, "<br>")
Og i javascript gør man sådan:
document.forms[0].textareanavn.value.replace("gammel_værdi","ny_værdi")
Altså: variabel.replace("før","nu")
Javascript-koden for linjeskift kender jeg ikke, men jeg gætter på at det er
\n ligesom i php. (n som i "Newline").
Måske dette her kan hjælpe dig videre:
http://e-tidsskrift.dk/dev/tegntabel.html#blanktegn
Ovenstående vil give:
document.forms[0].textareanavn.value.replace("\n","<br>")
| |
Stig Johansen (24-07-2008)
| Kommentar Fra : Stig Johansen |
Dato : 24-07-08 06:33 |
|
Philip Nunnegaard wrote:
> Javascript-koden for linjeskift kender jeg ikke, men jeg gætter på at det
> er \n ligesom i php. (n som i "Newline").
Nu erdet lidt svært at finde ud af hvad Christian vil, han snaker om at
'sende data', men bruger load ?
Han loader et .asp script, så det vil nok være lettest at lave det
serverside i ASP.
Men hvis han mener 'sende' fra et textarea, så benytter FF2 '\n' mens IE6
benytter '\r\n'.
Det vil nok virker med en replace af '\n' alene, men jeg er sådan en der
ikke vil have eks. '\r<br>' i hverkan database eller html, så jeg tester på
begge dele.
--
Med venlig hilsen
Stig Johansen
| |
Christian Kragh (24-07-2008)
| Kommentar Fra : Christian Kragh |
Dato : 24-07-08 19:46 |
|
> > Javascript-koden for linjeskift kender jeg ikke, men jeg gætter på at det
> > er \n ligesom i php. (n som i "Newline").
>
> Nu erdet lidt svært at finde ud af hvad Christian vil, han snaker om at
> 'sende data', men bruger load ?
> Han loader et .asp script, så det vil nok være lettest at lave det
> serverside i ASP.
> Men hvis han mener 'sende' fra et textarea, så benytter FF2 '\n' mens IE6
> benytter '\r\n'.
> Det vil nok virker med en replace af '\n' alene, men jeg er sådan en der
> ikke vil have eks. '\r<br>' i hverkan database eller html, så jeg tester på
> begge dele.
Det jeg har / vil er at sende indholdet af et tekstfelt til min server, ved
hjælp af ajax, og der sætte det ind i en database.
I tekstfeltet skal de linjeskift der skrives ved hjælp af enter knappen ændres
til en <br> som sendes til serveren i koden.
På serveren ændres tekstfeltet så tilbage med replace funktionen i ASP således
at der kommer et linjeskift i databasen. Altså et vbcrlf.
Derfor er Philip Nunnegaards metode præcis det jeg skal bruge, jeg har fundet
ud af at denne virker...
if(error == 0)
javascript:$("#content").load(" http://localhost/TodoList/blog.asp?create=yes&u
dvidelse=" + document.forms[0].textareanavn.value.replace(/\r\n/g,"<br>\r\n")
+ "&titel=" + document.forms[0].Titelnavn.value + "&id=" +
document.forms[0].ridnavn.value);
}
Således at alle linjeskift, der kan forekommer flere gange, ændres til <br>.
Derfor bruger jeg nu:
document.forms[0].textareanavn.value.replace(/\r\n/g,"<br>\r\n")
/ før \r\n og igen /g efterfølgende, for at finde alle.
Derfor tak for hjælpen til både den ene og den anden...
metoden med \n i firefox fanges alligevel selvom der står \r\n, men der skal
\r foran ellers virker det ikke i IE7.
Christian
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Philip Nunnegaard (24-07-2008)
| Kommentar Fra : Philip Nunnegaard |
Dato : 24-07-08 19:54 |
|
Christian Kragh wrote:
> Det jeg har / vil er at sende indholdet af et tekstfelt til min
> server, ved hjælp af ajax, og der sætte det ind i en database.
Jeg gættede mig netop frem til at du brugte AJAX, måske fordi jeg selv leger
med det for tiden og måske også en dag ryger ind i problemet hvis jeg en dag
skal sende længere tekster med linjeskift ind over.
> Derfor tak for hjælpen til både den ene og den anden...
>
> metoden med \n i firefox fanges alligevel selvom der står \r\n, men
> der skal \r foran ellers virker det ikke i IE7.
Selv tak. Nu blev jeg også klogere.
| |
Stig Johansen (24-07-2008)
| Kommentar Fra : Stig Johansen |
Dato : 24-07-08 21:45 |
|
"Philip Nunnegaard" <nunnenospam@hitsurf.dk> wrote in message
news:4888cfc1$0$56784$edfadb0f@dtext02.news.tele.dk...
> Christian Kragh wrote:
>
> > Det jeg har / vil er at sende indholdet af et tekstfelt til min
> > server, ved hjælp af ajax, og der sætte det ind i en database.
>
> Jeg gættede mig netop frem til at du brugte AJAX, måske fordi jeg selv
leger
> med det for tiden og måske også en dag ryger ind i problemet hvis jeg en
dag
> skal sende længere tekster med linjeskift ind over.
He - han skrev også Ajax. Min kommentar var en stikpille om at det er yderst
ulogisk at benytte en funktion, der hedder 'load' til at 'sende med'.
Det er ikke ligefrem den slags ting, der gør koder let læselige/forståelige
mht. vedligeholdelse.
>
> > Derfor tak for hjælpen til både den ene og den anden...
> >
> > metoden med \n i firefox fanges alligevel selvom der står \r\n, men
> > der skal \r foran ellers virker det ikke i IE7.
Christian:
Men det du skriver er at gå over åen med mel i munden....
Jeg bruger det her i ASP:
if InStr(MessageBody,vbCrLf) < 1 then MessageBody =
Replace(MessageBody,chr(10),vbCrLf)
Også med Ajax, og det virker i alle mine browsere samt korrekte linieskift i
Access/MS SQLserver m.m.
Hvorfor vil du skifte lf -> <br> -> crlf ?
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Birger (25-07-2008)
| Kommentar Fra : Birger |
Dato : 25-07-08 00:45 |
|
"Stig Johansen" <wopr.dk@gmail.com> skrev i en meddelelse
news:4888e96c$0$90272$14726298@news.sunsite.dk...
> "Philip Nunnegaard" <nunnenospam@hitsurf.dk> wrote in message
> news:4888cfc1$0$56784$edfadb0f@dtext02.news.tele.dk...
>> Christian Kragh wrote:
>>
>> > Det jeg har / vil er at sende indholdet af et tekstfelt til min
>> > server, ved hjælp af ajax, og der sætte det ind i en database.
>>
>> Jeg gættede mig netop frem til at du brugte AJAX, måske fordi jeg selv
> leger
>> med det for tiden og måske også en dag ryger ind i problemet hvis jeg en
> dag
>> skal sende længere tekster med linjeskift ind over.
>
> He - han skrev også Ajax. Min kommentar var en stikpille om at det er
> yderst
> ulogisk at benytte en funktion, der hedder 'load' til at 'sende med'.
> Det er ikke ligefrem den slags ting, der gør koder let
> læselige/forståelige
> mht. vedligeholdelse.
>
>>
>> > Derfor tak for hjælpen til både den ene og den anden...
>> >
>> > metoden med \n i firefox fanges alligevel selvom der står \r\n, men
>> > der skal \r foran ellers virker det ikke i IE7.
>
> Christian:
> Men det du skriver er at gå over åen med mel i munden....
> Jeg bruger det her i ASP:
> if InStr(MessageBody,vbCrLf) < 1 then MessageBody =
> Replace(MessageBody,chr(10),vbCrLf)
>
> Også med Ajax, og det virker i alle mine browsere samt korrekte linieskift
> i
> Access/MS SQLserver m.m.
>
> Hvorfor vil du skifte lf -> <br> -> crlf ?
>
Tror de glemmer at encode teksten rigtigt.
Brug encodeURIComponent( 'var=text') som data - hvadenten der bruges GET
eller POST i AJAX.
Hvis man vil have CR i sin database, skal man så blot fjerne LF'er. ( +
huske at checke for tags, kode etc...) Og det gøres IMHO lettest serverside.
Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.
| |
Stig Johansen (25-07-2008)
| Kommentar Fra : Stig Johansen |
Dato : 25-07-08 06:06 |
|
Birger wrote:
> Tror de glemmer at encode teksten rigtigt.
> Brug encodeURIComponent( 'var=text') som data - hvadenten der bruges GET
> eller POST i AJAX.
Det synes jeg er godt set - det er dømt til at gå i kage uden encoding.
Der kan muligvis også opstå noget med æøå m.m. afhængig af hvordan miljøet
er sat op.
> Hvis man vil have CR i sin database, skal man så blot fjerne LF'er. ( +
> huske at checke for tags, kode etc...) Og det gøres IMHO lettest
> serverside.
Det er vi enige i (serverside), men Windows benytter CRLF og ikke kun LF, så
hvis data skal kunne bruges til brevfletning, andre systemer m.v. så er det
bedst at konvertere enkeltstående LF (=FF) til CRLF.
*Nix systemer bruger kun LF, og her er det bedst at fjerne CR (=IE) så det
passer ind med resten af programmerne.
--
Med venlig hilsen
Stig Johansen
| |
Birger (25-07-2008)
| Kommentar Fra : Birger |
Dato : 25-07-08 10:28 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:48895f57$0$90267$14726298@news.sunsite.dk...
> Birger wrote:
>
>> Tror de glemmer at encode teksten rigtigt.
>> Brug encodeURIComponent( 'var=text') som data - hvadenten der bruges GET
>> eller POST i AJAX.
>
> Det synes jeg er godt set - det er dømt til at gå i kage uden encoding.
> Der kan muligvis også opstå noget med æøå m.m. afhængig af hvordan miljøet
> er sat op.
>
>> Hvis man vil have CR i sin database, skal man så blot fjerne LF'er. ( +
>> huske at checke for tags, kode etc...) Og det gøres IMHO lettest
>> serverside.
>
> Det er vi enige i (serverside), men Windows benytter CRLF og ikke kun LF,
> så
> hvis data skal kunne bruges til brevfletning, andre systemer m.v. så er
> det
> bedst at konvertere enkeltstående LF (=FF) til CRLF.
>
> *Nix systemer bruger kun LF, og her er det bedst at fjerne CR (=IE) så det
> passer ind med resten af programmerne.
>
Har selv haft problemet ;>)
Tekster fra textarea har i IE LFCR mens FF og Opera kun har CR. (Har ikke
checket andre).
[
Og det gælder svjh. kun ved læsning - indsætter man tekst, f.eks. via
innerHTML tilpasser browserne selv til "ny linie", enten der står det ene
eller andet...
]
Alene derfor er man altså nødt til at gøre et eller andet ved det - og sørge
for at det endelige resultat er som man har brug for det - hvad enten det
skal være den ene, den anden eller dem begge - og det må vel netop blive
dikteret af hvad den endelige anvendelse er..
Jeg tror måske jeg misforstår dig.
LF er ikke det samme som FF
http://www.asciitable.com/
FF giver ikke megen mening i et textarea i HTML, men bør vel alligevel kunne
stå der - også uden nødvendigvis at blive lavet om til "ny linie"?
Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.
| |
Stig Johansen (25-07-2008)
| Kommentar Fra : Stig Johansen |
Dato : 25-07-08 18:16 |
|
Birger wrote:
> Jeg tror måske jeg misforstår dig.
> LF er ikke det samme som FF
Sk*de forkortelser - det var FF, og ikke FF
FF som i FireFox, og ikke som i FormFeed.
Min FireFox sender kun LF, hvorimod IE sender CRLF.
Da det er Windows server, replacer jeg enkeltstående LF'er med CRLF'er.
--
Med venlig hilsen
Stig Johansen
| |
Birger (25-07-2008)
| Kommentar Fra : Birger |
Dato : 25-07-08 22:02 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:488a0a85$0$90262$14726298@news.sunsite.dk...
> Birger wrote:
>
>> Jeg tror måske jeg misforstår dig.
>> LF er ikke det samme som FF
>
> Sk*de forkortelser - det var FF, og ikke FF
>
> FF som i FireFox, og ikke som i FormFeed.
>
> Min FireFox sender kun LF, hvorimod IE sender CRLF.
> Da det er Windows server, replacer jeg enkeltstående LF'er med CRLF'er.
>
>
Jeg mener nu at FF kun sender CR..?
Det kommer måske an på OP?
Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.
| |
Birger (25-07-2008)
| Kommentar Fra : Birger |
Dato : 25-07-08 22:12 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:488a0a85$0$90262$14726298@news.sunsite.dk...
> Birger wrote:
>
>> Jeg tror måske jeg misforstår dig.
>> LF er ikke det samme som FF
>
> Sk*de forkortelser - det var FF, og ikke FF
>
> FF som i FireFox, og ikke som i FormFeed.
>
> Min FireFox sender kun LF, hvorimod IE sender CRLF.
> Da det er Windows server, replacer jeg enkeltstående LF'er med CRLF'er.
>
>
LOL
ROTFL
Vi er helt enige ;>)
Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.
| |
|
|