Avatar billede nanna31 Praktikant
23. juli 2002 - 13:01 Der er 23 kommentarer og
1 løsning

database-tekst til form-tekstfelt

Jeg skal skrive en sætning ud fra en database...

Hvis jeg skriver : =<%=rec("oplaeg_a")%> virker det perfekt!

Men når jeg vil have teksten ind i et form-tekstfelt :
<input type="text" name="oplaeg_a" size="60" class="boks" value=<%=rec("oplaeg_a")%>>
... så udskrives kun det første ord i form-tekstfeltet - som om mellemrum ikke håndteres så godt ???
Avatar billede medions Nybegynder
23. juli 2002 - 13:04 #1
<input type="text" name="oplaeg_a" size="60" class="boks" value="<%= rec("oplaeg_a")%>">

Prøv med denne..

//>Rune
Avatar billede medions Nybegynder
23. juli 2002 - 13:05 #2
ahh.. nej.. det er fordi du har et linjeskift i dit recordset! Så er du nødt til at have et Textarea:

<textarea name="oplaeg_a" class="boks"><%= rec("oplaeg_a") %></textarea>

//>Rune
Avatar billede medions Nybegynder
23. juli 2002 - 13:08 #3
ellers kunne du oxo gøre sådan her:

<input type="text" name="oplaeg_a" size="60" class="boks" value="<%= Replace(rec("oplaeg_a"), vbCrLf, "")%>">

Men der får du jo ikke dine linjeskrift med...

//>Rune
Avatar billede coolcoder Nybegynder
23. juli 2002 - 13:14 #4
det er altid en god ting at skrive:

<input type="text" name="oplaeg_a" size="60" class="boks" value="<%= server.htmlencode(replace(rec("oplaeg_a"), vbcrlf, " ")) %>">

...så slipper du for html-tags der fucker op i dit layout. Og så replace linieskift med mellemrum i stedet for. Ellers er det ikke til at læse ;)
Avatar billede nanna31 Praktikant
23. juli 2002 - 13:17 #5
Det virker stadig ikke, jeg tror det er space, der er problemet - hvad er koden for space ? (vbCrSp)? Hvad gør man, hvis man vil skifte flere forskellige tegn ud ?
Avatar billede medions Nybegynder
23. juli 2002 - 13:20 #6
Space har vidst ikke noget tegn i VB...

Men hvis nu fx. du vil have skiftet alle ét taller ud med 2 taller, kan du skrive:

Response.Write(Replace("12234",1,2))

//>Rune
Avatar billede medions Nybegynder
23. juli 2002 - 13:21 #7
nanna31> Prøv at skrive

Response.Write(Replace(rec("oplaeg_a"),vbCrLf, "<br>")) og prøv at skriv her på eksperten hvilken tekst der kom frem...

//>Rune
Avatar billede coolcoder Nybegynder
23. juli 2002 - 13:26 #8
prøv at kigge i kilden. Hvis hele teksten står der, så er det fordi du udskriver nogle "ugyldige" tegn i HTML-koden. Derfor skal du server.htmlencode teksten fra basen.

Og huske og omklamre value="test" med "'er
Avatar billede nanna31 Praktikant
23. juli 2002 - 13:27 #9
Normalt kan jeg sagtens skrive det ud uden brug af Replace, det er åbenbart kun et problem når det skal skrives ud i et form-tekstfelt.

Der MÅ være en kode for space ?
Avatar billede nanna31 Praktikant
23. juli 2002 - 13:28 #10
ok coolcoder...øjeblik !
Avatar billede nanna31 Praktikant
23. juli 2002 - 13:29 #11
eh hvad for en kilde ? - og hvordan encoder jeg så ?
Avatar billede medions Nybegynder
23. juli 2002 - 13:30 #12
nanna31> Jamen hvad vil du da bruge koden til space til?

//>Rune
Avatar billede medions Nybegynder
23. juli 2002 - 13:33 #13
Her er koden for space:

Chr(32)

//>Rune
Avatar billede nanna31 Praktikant
23. juli 2002 - 13:34 #14
Problemet opstår, når der kommer et mellemrum.
Avatar billede medions Nybegynder
23. juli 2002 - 13:34 #15
Så i realiteten kunne du skrive:_

<input type="text" name="oplaeg_a" size="60" class="boks" value="<%= Replace(rec("oplaeg_a"), Chr(32), "")%>">

//>Rune
Avatar billede nanna31 Praktikant
23. juli 2002 - 13:37 #16
Nu skriver jeg :

value=<%= Replace(rec("oplaeg_a"), Chr(32), "") %>

Nu skriver den hele sætningen ud, men selvfølgelig uden mellemrum, hvordan får jeg dem med ?
Avatar billede medions Nybegynder
23. juli 2002 - 13:40 #17
Prøv med denne:

value=<%= Replace(rec("oplaeg_a"), Chr(32), Chr(34)) %>

//>Rune
Avatar billede coolcoder Nybegynder
23. juli 2002 - 13:40 #18
html-kilden!! Det lyder helt bestemt som om du ikke har sat gåseøjne foran og bagved valuen. Et formfelt kan sagtens indeholde mellemrum.

Du encoder ganske simpelt ved udskrive form-feltet således:

<input type="text" name="oplaeg_a" size="60" class="boks" value="<%= server.htmlencode(replace(rec("oplaeg_a"), vbcrlf, " ")) %>">

husk at få det hele med
Avatar billede nanna31 Praktikant
23. juli 2002 - 13:43 #19
Coolcoder - du havde ret :) - jeg manglede at sætte "";

Tak for hjælpen begge to.
Avatar billede nanna31 Praktikant
23. juli 2002 - 14:43 #20
Lige en ting til :)

Når man læser integers ind fra databasen rec("variabelnavn"), opfattes de så som tal eller tegn i asp ?
Avatar billede medions Nybegynder
23. juli 2002 - 14:53 #21
Hvis du laver en CInt() omkring, så konvertere den om til en integer... fx.

CInt(rec("variabelnavn"))

//>Rune
Avatar billede nanna31 Praktikant
23. juli 2002 - 14:55 #22
Ja jeg kender den godt, men er den nødvendig, i ovenstående eksempel ?
Avatar billede medions Nybegynder
23. juli 2002 - 16:47 #23
Nej...

//>Rune
Avatar billede nanna31 Praktikant
23. juli 2002 - 17:44 #24
Thanks :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester