Avatar billede flamsk Nybegynder
23. januar 2005 - 22:21 Der er 32 kommentarer og
1 løsning

send parametre fra en asp fil til en anden via ahref

Hejsa

Jeg har 2 filer: forside.asp og link.asp
via links på forside kaldes link.asp
eks. link.asp?url=productmenu.asp

link.asp skriver bare parameteren ud på skærmen vha.
<%Response.Write(Request.QueryString(""))%>
den skriver "productmenu.asp", det er ok.

mit problem er at min parameter som er en url, nogle gange selv har parametre disse skal også overføres.

eks. link.asp?url=productmenu.asp?news=1
så skriver den "productmenu.asp?news=1", det er ok.

nu kommer problemet!!!

eks. link.asp?url=productmenu.asp?showCatUrl=&Ext1=53#53
så skriver den kun "productmenu.asp?showCatUrl=", det er jo skidt, for så mangler "&Ext1=53#53"!!

findes der en løsning ???
kan man evt, lave så man kan overføre hvilken som helst streng eks.. link.asp?url="productmenu.asp?showCatUrl=&Ext1=53#53" virker ikke.

håber der er nogen som forstår og har en løsning
haster
Avatar billede softspot Forsker
23. januar 2005 - 22:29 #1
finde parametrene ikke i request.querystring?

prøv f.eks. at skrive:

response.write request.querystring

altså uden parantes og dermed parametre på request.querystring
Avatar billede arne_v Ekspert
23. januar 2005 - 22:37 #2
Er du opmærksom på at # har speciel betydning i URL'er ?
Avatar billede arne_v Ekspert
23. januar 2005 - 22:38 #3
Det er lidt småsuspect med en parameter som ingen værdi har (showCatUrl), men
det virker hos mig
Avatar billede flamsk Nybegynder
23. januar 2005 - 22:38 #4
det virker næsten...

hvis jeg gør følgende link.asp?url=productmenu.asp?showCatUrl=&Ext1=53#53

så skriver den..
Avatar billede flamsk Nybegynder
23. januar 2005 - 22:39 #5
ups..

det virker næsten...

hvis jeg gør følgende link.asp?url=productmenu.asp?showCatUrl=&Ext1=53#53

så skriver den..
url=productmenu.asp?showCatUrl=&Ext1=53
og ikke
url=productmenu.asp?showCatUrl=&Ext1=53#53

"#53" mangler
Avatar billede flamsk Nybegynder
23. januar 2005 - 22:39 #6
"Er du opmærksom på at # har speciel betydning i URL'er ?" hvordan ??
Avatar billede arne_v Ekspert
23. januar 2005 - 22:43 #7
xxxx.asp#sidst

betyder load xxxx.asp og gå ned til <A NAME="sidst"> tagget !
Avatar billede softspot Forsker
23. januar 2005 - 22:44 #8
# er et link til et anchor på den side som refereres umiddelbart før #
Avatar billede softspot Forsker
23. januar 2005 - 22:45 #9
ups... for langsom igen! :)
Avatar billede softspot Forsker
23. januar 2005 - 22:46 #10
men arne, burde # ikke stadig være en del af querystring?
Avatar billede flamsk Nybegynder
23. januar 2005 - 22:48 #11
nå, ok,,,  men jeg har desværre brug for at overføre denne også..

altså hele strengen.
productmenu.asp?showCatUrl=&Ext1=53#53

nogen løsning,, kan man ikke skrive et tegn for an #53 så det ikke bliver opfattet som en anchor henvisning `?
Avatar billede arne_v Ekspert
23. januar 2005 - 22:49 #12
Prøv med %23

Men bedre: find et andet tegn !
Avatar billede arne_v Ekspert
23. januar 2005 - 22:50 #13
softspot>

jo, men jeg var bare i tvivl om det # var tiltænkt som et #
Avatar billede flamsk Nybegynder
23. januar 2005 - 22:51 #14
jeg kan desværre ikke bruge et andet tegn :-( "en lang historie"
Avatar billede flamsk Nybegynder
23. januar 2005 - 22:52 #15
hvis jeg skriver link.asp?url=productmenu?showCatUrl=&Ext1=53%2353
får jeg bare productmenu?showCatUrl=&Ext1=53%2353
Avatar billede arne_v Ekspert
23. januar 2005 - 22:56 #16
Ja, men det er jo også det du vil !

Når produktmenu.asp så kalder Request("Ext1") så er der et lille
håb om at du får "53#53"
Avatar billede softspot Forsker
23. januar 2005 - 22:58 #17
...ellers kan du vel bare udskifte %23 med # efterfølgende... eller hvad?
Avatar billede flamsk Nybegynder
23. januar 2005 - 22:59 #18
virker desværre ikke
Avatar billede flamsk Nybegynder
23. januar 2005 - 23:01 #19
her er koden i produktmenu.asp, det kan være det forklare lettere:

<html>
<head>
<title>www.medieshoppen.dk</title>
</head>
    <FRAMESET border=false frameSpacing=0 frameBorder=0 cols=*,750,*>
    <FRAME name=spaceleft src="http://www.medieshoppen.dk/shop/SpaceLeft.asp" noResize scrolling=no>
        <FRAMESET rows=50,90%,*>
        <FRAME name=spacetop src="http://www.medieshoppen.dk/shop/SpaceTop.asp" noResize scrolling=no>
            <FRAMESET rows=25,*>
            <FRAME name=topmenu src="http://www.medieshoppen.dk/shop/TopMenu.asp" noResize scrolling=no target="main">
                <FRAMESET cols=160,*>
                    <FRAMESET rows=*,75>
                        <FRAME name=productmenu src="http://www.medieshoppen.dk/shop/<%Response.Write(Request.QueryString)%>" noResize>
                        <FRAME name=basket src="http://www.medieshoppen.dk/shop/Basket.asp" scrolling=no>
                    </FRAMESET>
                    <FRAME name=main src="http://www.medieshoppen.dk/shop/frontpage.asp" target="main">
                </FRAMESET>
            </FRAMESET>
            <FRAME name=spacebottom src="http://www.medieshoppen.dk/shop/SpaceBottom.asp" noResize scrolling=no>
        </FRAMESET>
        <FRAME name=spaceright src="http://www.medieshoppen.dk/shop/SpaceRight.asp" noResize scrolling=no><NOFRAMES><body><p></p></body></NOFRAMES>
    </FRAMESET>
</html>
Avatar billede flamsk Nybegynder
23. januar 2005 - 23:02 #20
jeg kan ikke ændre koden på medieshoppen.dk, jeg prøver bare på at kunne linke til en frame side, hvor et bestemt produkt er valgt i produkt menuen.
Avatar billede flamsk Nybegynder
23. januar 2005 - 23:23 #21
kan man ikke på en eller anden måde, læse den url en pågældende side er blevet kaldt med ?, sådan at man kan se hele URL´en inklusiv anchors ?
Avatar billede arne_v Ekspert
23. januar 2005 - 23:27 #22
Du kan jo checke

Request.ServerVariables("URL")
Avatar billede softspot Forsker
23. januar 2005 - 23:29 #23
Kan du bruge dette til noget:

<%@ language=VBScript %>
<%
function UrlDecode(s)
    s = replace(s,"+"," ")
    s = replace(s,"%27","'")
    s = replace(s,"%21","!")
    s = replace(s,"%23","#")
    s = replace(s,"%24","$")
    s = replace(s,"%25","%")
    s = replace(s,"%26","&")
    s = replace(s,"%28","(")
    s = replace(s,"%29",")")
    s = replace(s,"%2E",".")
    s = replace(s,"%2F","/")
    s = replace(s,"%3A",":")
    s = replace(s,"%3B",";")
    s = replace(s,"%5B","[")
    s = replace(s,"%5C","\")
    s = replace(s,"%5D","]")
    s = replace(s,"%5E","^")
    s = replace(s,"%60","`")
    s = replace(s,"%7B","{")
    s = replace(s,"%7C","|")
    s = replace(s,"%7D","}")
    s = replace(s,"%2B","+")
    s = replace(s,"%3C","<")
    s = replace(s,"%3D","=")
    s = replace(s,"%3E",">")
    s = replace(s,"%3F","?")
    s = replace(s,"%0D",chr(13))
    UrlDecode = s
end function
%>
<html>
    <head>
    </head>
   
    <body>
        <p>Aktuelle parametre:<br><%=UrlDecode(Request.QueryString)%></p>
        <a href="<%=Request.ServerVariables("SCRIPT_NAME") & "?" & Server.UrlEncode(UrlDecode(Request.QueryString))%>">test</a><br>
        <a href="<%=Request.ServerVariables("SCRIPT_NAME") & "?" & Server.UrlEncode("url=test.asp?p1=1&p2=2&p3=3#1")%>">initial url</a>
    </body>
</html>
Avatar billede softspot Forsker
23. januar 2005 - 23:35 #24
hmm... nej, det kan du vel ikke, for din querystring har du vel ikke styr over hvordan bliver leveret til dig (og det kræver ovenstående eksempel vel egentlig)...
Avatar billede flamsk Nybegynder
24. januar 2005 - 00:03 #25
hmm, nu har jeg fået det til at virke :-)
ved bare ikke helt hvorfor..

man kan ikke skrive url med anker ud, men den bliver vidre sendt godt nok :)

i kan bare dele pointne.
Avatar billede flamsk Nybegynder
24. januar 2005 - 00:14 #26
jeg har et problem mere, på link.asp er der en form, når man submiter bliver main.asp kaldt (næsten magen til tidligere produktmenu.asp), som så redirecter videre til www.medieshoppen.dk/shop/productlist.asp

hvordan får jeg vidre sendt form oplysninger fra link.asp igennem main.asp til www.medieshoppen.dk/shop/productlist.asp ??
Avatar billede arne_v Ekspert
24. januar 2005 - 07:40 #27
Vel på samme måde - du skal bare fiske data ud af Form i.s.f. QueryString.
Avatar billede softspot Forsker
24. januar 2005 - 08:09 #28
arne > Skal form-data i POST'es?
Avatar billede arne_v Ekspert
24. januar 2005 - 08:23 #29
Jeg antog at det var:

A---(POST)--->B---(GET)--->eksternt

A---(POST)--->B---(POST)--->eksternt

er noget mere besværligt
Avatar billede softspot Forsker
24. januar 2005 - 08:28 #30
ja, det var også det jeg ville synes, men var bare ikke sikker på om der var en "smart" metode til at gøre dette (altså POST-POST metoden).
Avatar billede flamsk Nybegynder
24. januar 2005 - 11:44 #31
jeg tror det skal være:

A---(POST)--->B---(POST)--->eksternt

kan laves sådan.

<%
  Response.Status = "307 Moved Temporarily"
  Response.AddHeader "Location","http://www.medieshoppen.dk/shop/Productlist.asp?search=1"   
%>

men mit problem er at ved overstående kode, bliver der redirektet til
http://www.medieshoppen.dk/shop/Productlist.asp

men da det skal opbyges som frames, mangler der target information..

det skulle gerne kunne implementeres i følgende

<html>
<head>
<title>www.medieshoppen.dk</title>
</head>
    <FRAMESET border=false frameSpacing=0 frameBorder=0 cols=*,750,*>
    <FRAME name=spaceleft src="http://www.medieshoppen.dk/shop/SpaceLeft.asp" noResize scrolling=no>
        <FRAMESET rows=50,90%,*>
        <FRAME name=spacetop src="http://www.medieshoppen.dk/shop/SpaceTop.asp" noResize scrolling=no>
            <FRAMESET rows=25,*>
            <FRAME name=topmenu src="http://www.medieshoppen.dk/shop/TopMenu.asp" noResize scrolling=no target="main">
                <FRAMESET cols=160,*>
                    <FRAMESET rows=*,75>
                        <FRAME name=productmenu src="http://www.medieshoppen.dk/shop/Productlist.asp>" noResize>
                        <FRAME name=basket src="http://www.medieshoppen.dk/shop/Basket.asp" scrolling=no>
                    </FRAMESET>
                    <FRAME name=main src="http://www.medieshoppen.dk/shop/frontpage.asp" target="main">
                </FRAMESET>
            </FRAMESET>
            <FRAME name=spacebottom src="http://www.medieshoppen.dk/shop/SpaceBottom.asp" noResize scrolling=no>
        </FRAMESET>
        <FRAME name=spaceright src="http://www.medieshoppen.dk/shop/SpaceRight.asp" noResize scrolling=no><NOFRAMES><body><p></p></body></NOFRAMES>
    </FRAMESET>
</html>
Avatar billede arne_v Ekspert
24. januar 2005 - 21:57 #32
Øh.

En redirect (Location header) kan så vidt jeg ved ikke sende POST data med.
Avatar billede flamsk Nybegynder
30. januar 2005 - 21:52 #33
lukket
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