Avatar billede ankersan Nybegynder
25. september 2003 - 01:54 Der er 23 kommentarer og
1 løsning

response redirekt i iframe der opdaterer main vinduet eller?

Jeg er ved at lave en lille "forsøgsbutik" og roder med at have mine varer i en iframe.

Problemet er at min indkøbskurv ikke lægger i iframen, men i hovedframen.

Når man køber et produkt sender jeg til en "put-i-kurv-side" som så går tilbage til den side man kom fra med en Response.redirect (Request.ServerVariables("HTTP_REFERER")).

Når dette er gjort er jeg nødt til manuelt at trykke opdater side (hele siden) for at kunne se de nye varer i kurven.

Jeg har forsøgt lidt forskelligt med parent reload men uden held.

Håber der er nogen der kan hjælpe da jeg er ved at være nede ved sidste hår jeg kan flå ud af hovedet i frustration!!

.Ankersan
Avatar billede dawin_dk Nybegynder
25. september 2003 - 01:58 #1
du skal relaode hoved-vinduet ja ... det kan gøres med

response.write "<script>top.document.location.reload();</script>"
Avatar billede ankersan Nybegynder
25. september 2003 - 08:29 #2
Hvor / hvordan bruger jeg den?
Er det på den side jeg laver response redirecten (og i så fald hvor)
eller er det på hovedsiden (og i så fald hvor)
eller er det på den side med produkterne (og i så fald hvor)
Jeg er bange for at jeg skal have denne her med ske :o)
Avatar billede keysersoze Guru
25. september 2003 - 09:14 #3
Du kan vha ASP ikke opdatere andet end den frame eller det vindue du er i - og derfor er du nødt til at bruge javascript til det.

Du er altså nødt til at placere et javascript der opdaterer iframen enten på din "put-i-kurv-side" eller på den side man går tilbage til når du har brugt din redirect. Jeg har dog lidt svært ved at se opbygningen for mig så jeg kan ikke lige umiddelbart sige hvor det vil være bedst at placere scriptet
Avatar billede ankersan Nybegynder
25. september 2003 - 10:03 #4
Jeg er stadig ikke helt klar over hvordan jeg skal gøre det...
Hvis jeg laver en onload refresh vil den jo bare stå og refreshe derudaf..
så hvis jeg kunne gøre det fra putikurv siden, sådan at den efter at have opdateret kurven refresher "top-vinduet" og så går tilbage til forige side med en response redirect som jeg har skrevet i spørgsmålet...??
Avatar billede keysersoze Guru
25. september 2003 - 10:08 #5
det kan du ikke - da en respone.redirect vil ske på serveren vil javascriptet slet ikke blive kørt... så skal opdateringen af iframen ske der skal du fjerne din redirect i din putikurv og i stedet lavet;

<script type="text/javascript">
document.location.href = 'dinside.asp';
window.parent.frames["diniframe"].location.href = 'dinandenside.asp';
</script>
Avatar billede dawin_dk Nybegynder
25. september 2003 - 10:45 #6
når di smider noget i kurven skal du smide den stump kode ind som eg skrev til dig .. så vil den refreshe siden når du smider noget i kruven ... jeg kan kan dog ikke se hvorfor du har en frame til at smide ting i kurven og kurven i hoved-vinduet ... normalt hvis man bruger frames ville man lave det omvendt..
Avatar billede ankersan Nybegynder
25. september 2003 - 10:56 #7
Jeg er helt lost her..

her er min putikurvside:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="inc_CharonCart.asp" -->
<!--#include file="Connections/db.asp" -->
<%
Dim valgtvare__MMColParam
valgtvare__MMColParam = "1"
If (Request.QueryString("vare") <> "") Then
  valgtvare__MMColParam = Request.QueryString("vare")
End If
%>
<%
Dim valgtvare
Dim valgtvare_numRows

Set valgtvare = Server.CreateObject("ADODB.Recordset")
valgtvare.ActiveConnection = MM_db_STRING
valgtvare.Source = "SELECT * FROM varer WHERE id = " + Replace(valgtvare__MMColParam, "'", "''") + ""
valgtvare.CursorType = 0
valgtvare.CursorLocation = 2
valgtvare.LockType = 1
valgtvare.Open()

valgtvare_numRows = 0
%>
<%
'**Add to cart from Link on previous page**
'**Charon Cart**
'
Randomize Timer
isFound=false
for i=0 to ubound(CCcart,2)
if CCcart(CC_ProductID,i) = cstr(valgtvare("id")) then
CCcart(CC_Quantity,i) = CCcart(CC_Quantity,i) + 1
isFound=true
exit for
end if
next
if not isFound then
for i=0 to ubound(CCcart,2)
if CCcart(CC_ProductID,i) = "" then
CCcart(CC_ProductID,i)=valgtvare("id")
CCcart(CC_Quantity,i)=("1")
CCcart(CC_Name,i)=valgtvare("varenavn")
CCcart(CC_Price,i)=valgtvare("pris")
CCcart(CC_UniqueKey,i)=int(rnd*9999999)+10000000
exit for
end if
next
end if
CartToCookie CCcart,"CharonCart"
CC_RedirectURL="visvogn.asp"
Response.redirect (Request.ServerVariables("HTTP_REFERER"))
%>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
</body>
</html>
<%
valgtvare.Close()
Set valgtvare = Nothing
%>

hvor skal jeg smide "stumpen" ind?

Grunden til at jeg har mine produkter i en iframe er at man så kan scrolle i dem uden at selve kurven scroller væk.
Avatar billede dawin_dk Nybegynder
25. september 2003 - 11:11 #8
smid det ind mellem dine body-tags
Avatar billede ankersan Nybegynder
25. september 2003 - 11:41 #9
Det virker ikke, når den overhovedet derned når der er en response redirect?
Avatar billede keysersoze Guru
25. september 2003 - 12:06 #10
som tidligere sagt - javascript fungerer klient-side og det vil slet ikke nå at blive eksekveret hvis du bruger response redirect. Det var derfor jeg sagde at en mulighed kunne være at fjerne din redirect og indsætte mit javascript
Avatar billede ankersan Nybegynder
25. september 2003 - 12:15 #11
Problemet med dét er at det ikke er en bestemt side den skal tilbage til, men den foregående (alt efter hvilken kategori man er i)
Avatar billede keysersoze Guru
25. september 2003 - 12:18 #12
ja - men så burde du kunne finde siden der skal stilles tilbage toæ vha asp - altså på samme måde som nu

document.location.href = '<%=Request.ServerVariables("HTTP_REFERER")%>';
Avatar billede ankersan Nybegynder
25. september 2003 - 12:56 #13
ja, problemet er bare at den forrige side jo var den inde i iframen (altså min produktside som så kommer op i stor og fjerner alt omkring den.
Avatar billede keysersoze Guru
25. september 2003 - 12:59 #14
jeg er slet ikke med hvad du snakker om så - kan man ikke se det et eller andet sted? For mig lyder det enten som om siden har en helt vild underlig opbygning, eller også fordi du ikke er med på hvad vi snakker om...

har du et link?
Avatar billede ankersan Nybegynder
25. september 2003 - 13:06 #15
kender du et gratis hoststed hvor man kan lægge en db der må skrives til?
Avatar billede keysersoze Guru
25. september 2003 - 13:15 #16
nej...

Godt - så må du forklare lidt bedre... du har 2 frames; FRAME1 og FRAME2

hvad skifter hvor og hvornår i hvilke frames som det er nu - og hvordan skal det komme til at fungere?
Avatar billede dawin_dk Nybegynder
25. september 2003 - 13:16 #17
mail koden til david@dawin.dk ... så kigger jeg på den ...
Avatar billede ankersan Nybegynder
25. september 2003 - 15:16 #18
Jeg har sendt den....
Avatar billede ankersan Nybegynder
25. september 2003 - 15:20 #19
keysersoze>
Jeg har mit hovedvindue som indeholder indkøbskurven (så man hele tiden kan se hvor meget man har købt for) og en iframe.

I iframen lægger produktsiden, så man kan scrolle i den uden at top/bund/kurv/menu etc. scroller med.

endelig har jeg en side som behandler bestilingen (sørger for at den kommer ned i kurven og at beløbet bliver lagt til det samlede beløb)

Problemet er at jeg jo egentlig ikke hopper ud af iframen når jeg køber (hvilket jeg heller ikke vil) men så opdateres min hovedside ikke, hvilket resulterer i at beløbet ikke skifter før man trykker f5 / refresh i browseren.
Avatar billede ankersan Nybegynder
25. september 2003 - 15:23 #20
videre>
det bagvedlæggende fungerer. Varen kommer i kurven etc. men det kan ikke ses på siden før man refresher og det er den funktion jeg leder efter; En refresh af hovedsiden hver gang der er lagt noget nyt i kurven. (der er en hovedside for hvert produkt da der også er en lille historie med..)
Avatar billede ankersan Nybegynder
28. september 2003 - 11:06 #21
Er der noget jeg kan gøre for at gøre dette lettere for jer? er der en anden indgangsvinkel eller skal der flere point til?

Jeg er total lost og vil VIRKELIG gerne have rettet dette til.

.Ankersan
Avatar billede keysersoze Guru
28. september 2003 - 11:50 #22
godt - så er mit gæt (stadig) at du i stedet for en ASP-redirect bruger javascript til det på samme måde som jeg tidligere har beskrevet...noget a la dette;

<script type="text/javascript">
document.location.href = '<%=Request.ServerVariables("HTTP_REFERER")%>';
window.parent.frames["diniframe"].location.href = 'dinandenside.asp';
</script>
Avatar billede keysersoze Guru
10. oktober 2003 - 21:30 #23
er du snart nået videre??
Avatar billede ankersan Nybegynder
14. oktober 2003 - 07:13 #24
Jeg puttede min vogn i en anden iframe og brugte
<script type="text/javascript">
document.location.href = '<%=Request.ServerVariables("HTTP_REFERER")%>';
window.parent.frames["diniframe"].location.href = 'dinandenside.asp';
</script>
istedet for response redirect, og det virker.

Tak for hjælpen og tålmodigheden.
de her point er yderst velfortjent :o)
.Ankersan
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