Avatar billede vester Novice
20. juni 2001 - 12:09 Der er 6 kommentarer og
3 løsninger

tegnet \' i et tekstfelt

Jeg har et tekstfelt, der skriver til en database. I feltet skal der være mulighed for at skrive tegnet \', uden at det giver problemer.
Her er min kode:
<input type=\'text\' name=\'Option101\' size=\'50\' value=\'<%=RS(\"Option101\")%>\'>
Avatar billede cool_casper Nybegynder
20. juni 2001 - 12:32 #1
Du kan lave en replace FØR du indsætter din tekst i databasen.

replace(Request.form(\"Option101\"),\"\'\",#34)
Og så indsætte det!
Avatar billede vester Novice
20. juni 2001 - 12:33 #2
OK, det fattede jeg ikke så meget af?????
Avatar billede cool_casper Nybegynder
20. juni 2001 - 12:41 #3
Du her en side hvor der står noget med:


rs(\"etnavn\") = request.form(\"etandetnavn\")
... Og en masse mere...
rs.Update

Det er der hvor den gemmer i din database! Lige før det skal du indsætte
replace(Request.form(\"Option101\"),\"\'\",#34)

Så skulle den gerne indsætte dit \' tegn!
Avatar billede Slettet bruger
20. juni 2001 - 13:07 #4
i SQL kan du angive et dobbelt \' for at angive at det ikke er en afgrænsning af en tekststreng.

En tekststreng i SQL ser såddan ud: \'Mintekst\'
Derfor vil \"2 for en 10\'er\" blive \'2 for en 10\'er\', og det forvirrer SQL, og giver derfor fejl (den vd jo ikke om teksten kun skulle være \'2 for en 10\', da den tror at apostroffen (\') betyder at strengen er slut.

Derfor kan du bruge en dobbelt appostrof i SQL. Det opfattes som en enkalt appostrof, og ikke som en slutning på en tekststreng. Altså: \'2 for en 10\'\'er\'

I ASP kan du i en tekststreng erstatte alle apostriffer (\') med en dobbelt (\'\') ved at ruge funktionen Replace(Streng, original, ny)

\"Streng\" er den streng der skal gennemsøges.
\"original\" er det der ledes efter
\"ny\" er det, der skal sættes ind i stedet for.

Derfor kan du før du sætter ind i databasen lave flg:

strTilbud = \"to for en 10\'er\"
Replace(strTilbud, \"\'\", \"\'\'\")
(sæt derefter strTilbud ind i databasen)

når du laver et udtræk i data vil du så få \"2 for en 10\'er\", da \"\'\'\" betyder \"\'\"

Altdå i dit tilfælde:

strOption101 = Request.form(\"Option101\")
Replace(strOption101, \"\'\", \"\'\'\")

SQL = INSERT TO MinTabel(MinKolonne) VALUES(\'\" & strOption101 & \"\');\"
Avatar billede cool_casper Nybegynder
20. juni 2001 - 13:16 #5
SORRY! Du skal skrive #39 istedetfor #34 !!!!!!!!!!
Avatar billede cool_casper Nybegynder
20. juni 2001 - 13:28 #6
HALLOOOOOO....!!!!????
Avatar billede vester Novice
20. juni 2001 - 17:15 #7
Først og fremmest undskyld ventetiden.
Jeg er en af dem, der er velsignet med det, Telia/Stofa kalder \"Bedre Internet\".
Med til denne \"gave\" følger tit en masse ventetid, fordi forbindelsen forsvinder.
Derfor har jeg ikke haft netadgang de sidste timer,
og har derfor ikke kunne besøge Eksperten.

Anyway.
Jeg kan ikke få det til at virke. Kan jeg få en forklaring for dummies?

Her er feltet \"option101\"

Her laves \"option101\" om til en variabel

og her skrives til DB.

Hvor skal koden sættes ind?

Vester
Avatar billede icedox Nybegynder
20. juni 2001 - 19:11 #8
Se her : (den viker 100%)
Dim strTekst
strTekst = request.form(\"tekst\")
strTekst = Replace(strTekst, \"\'\",\";\")

Når teksten skal vises fra db.
strTekst = record(\"tekst\")
strTekst = Replace(strTekst, \";\",\"\'\")
Avatar billede vester Novice
20. juni 2001 - 19:52 #9
Tak for hjælpen..
Jeg er overbevist om at alle tre løsnínger virker og derfor får i alle de 15 points.
Vester
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