Avatar billede dreyfusdk Nybegynder
24. august 2005 - 12:35 Der er 11 kommentarer

&-tegn i prompt giver problemer

Jeg benytter følgende stump kode til at redigere kommentarer i et billedgalleri:

function redigerKommentar(){
    var kommentar = ''
    kommentar=prompt('Her kan du redigere kommentaren til billedet:','<%=rs("kommentar")%>');
    if (kommentar != null) {
    document.location.href = "edit.asp?billedId=<%=request("billedid")%>"+ kommentar +""
    }
}


Mit problem består dog bare i, at hvis jeg indtaster "Magnus & Myggen" så bliver kun "Magnus" gemt. ... Dvs. den stopper ved &-tegnet. Dét er jo helt sikkert noget med at & er et special tegn, men hvordan løser jeg dette problem?

Venlig hilsen

- Magnus
Avatar billede nielle Nybegynder
24. august 2005 - 12:37 #1
Du sksl simpelthen skrive &amp; i stedet for &.
Avatar billede nielle Nybegynder
24. august 2005 - 12:38 #2
Eller, endnu bedre: Du url-encoder dit link. Dette kan både gøres i ASP-delen og i JavaScript-delen.
Avatar billede roenving Novice
24. august 2005 - 12:39 #3
Når du skal indsætte noget i en url, skal det url-encodes, så f.eks.

    document.location.href = "edit.asp?billedId=<%=request("billedid")%>"+ encodeURIComponent(kommentar);
Avatar billede roenving Novice
24. august 2005 - 12:40 #4
-- og der skal sikkert også vises, at det ikke er en del af billedId, så:

document.location.href = "edit.asp?billedId=<%=request("billedid")%>&amp;kommentar="+ encodeURIComponent(kommentar);
Avatar billede nielle Nybegynder
05. september 2005 - 19:18 #5
Lukketid?
Avatar billede dreyfusdk Nybegynder
05. december 2005 - 18:28 #6
Hey,

encodeURIComponent fungerer alle tiders til & - nu ødelægger den bare mine andre special tegn. Fx. skriver jeg:

"Der var engang en grøn gås & en ælling"

så bliver resultatet det her:

"Der var engang en grøn gås & en ælling"

Hvordan undgår jeg det?
Avatar billede nielle Nybegynder
05. december 2005 - 22:33 #7
Har du prøvet at bruge decodeURIComponent til at decode med?
Avatar billede dreyfusdk Nybegynder
07. december 2005 - 13:48 #8
Hmm... Jeg kan ikke se hvordan jeg skal kunne anvende den, fordi på server-side delen så anvender jeg jo ikke java, men ASP.. kunne meget simpelt se sådan ud:

<%
kommentar = request("kommentar")
response.write kommentar
%>
Avatar billede roenving Novice
08. december 2005 - 00:52 #9
Den slags muligheder har du da også i alle mulige asp-sprog, f.eks. kan du jo bruge JScript i asp:

<%
kommentar = request("kommentar");
response.write(decodeURIComponent(kommentar));
%>

-- hvad den så lige hedder i VBscript er jeg ikke klar over ...
Avatar billede dreyfusdk Nybegynder
12. december 2005 - 15:03 #10
Jeg har undersøgt, men kan ikke finde decodeURIComponent() funktionen (eller rettere, hvad der svarer til den) i ASP.

Er det nogen der kan hjælpe? Jeg har hævet point værdien til 200 til dette spørgsmål.

Der er naturligvis den "hårde" medtode ved, at lave en funtion manuelt selv replacer fx. "æ" til "Æ" osv, men der er risikoen for, at der på et tidspunkt anvendes speciealtegn der ikke er skrevet replace funktion til, som så ender med at give mærkelige tegn igen - derfor vil jeg gerne undgå dette.
Avatar billede nielle Nybegynder
02. januar 2006 - 20:56 #11
Når du skriver at resultatet bliver:

"Der var engang en grøn gås & en ælling"

- hvor er det så henne? Er det når du skriver ud på skærmen, eller i en database eller hvad?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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