25. september 2003 - 01:54Der 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!!
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)
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
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...??
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;
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..
<%@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")) %>
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
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...
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.
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..)
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;
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
Synes godt om
Ny brugerNybegynder
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.