/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Æ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.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste