Avatar billede moejensen Nybegynder
01. januar 2004 - 23:09 Der er 6 kommentarer og
1 løsning

reload side fra asp

Jeg har en side hvor man kan redigere nogele records i en database, når man klikker for at redigere en record, fremkommer der et layer med en iframe inden i. i iframen kan brugeren redigere den valgte record.

Mit problem er at når oplysningerne er gemt, vil jeg gerne have at vinduet lukkes og den første side reloades. Men hvordan kan jeg gøre det.

Jeg kan i princippet nøjes med at reloade den første side, da vinduet derved automatisk forsvinder.
Avatar billede eagleeye Praktikant
01. januar 2004 - 23:55 #1
redirect kan ikke loade siden i et andet vindue end det ASP siden er i. Så man må bruge javascript til det:

<%
'ASP kode
%>
<script type="text/javascript">
  window.parent.frames['NAVN_PÅ_FRAME'].location.href = 'side.asp';
</script>
Avatar billede moejensen Nybegynder
02. januar 2004 - 00:06 #2
jeg ved ikke om du helt har forstået det rigtigt, så jeg prøver lige at forklare det på en  bedre måde.

jeg har en fil der hedder nyheder.asp, i den fil bliver brugeren præsenteret for en liste over de nyheder der er. brugeren har mulighed forat slette eller redigere en nyhed. Hvis brugeren vælger at redigeren en nyhed åbner der sig et div layer midt på siden, hvori  der er en i frame. i iframen loades edit.asp, som indeholder en form hvor brugeren kan rette oplysningerne. når formen submittes, kalder den sig selv (altså edit.asp). I toppen af edit.asp har jeg så et tjek på om formen er submittet, og hvis det er tilfeldet køres følgende kode:

If bolWasPosted Then
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&server.mappath("/db/edc.mdb")
    Conn.execute ("UPDATE DISTINCTROW b SET sted = '"& request.form("sted") &"', type = '"& request.form("type") &"',pris = '"& request.form("pris") &"', bID = "& request.form("bid") &" WHERE id = "& request("id") &";")
    conn.close
    set conn = nothing
End if

Når denne kode er kørt vi ljeg så gerne have at nyheder.asp bliver reloadet, men hvordan starter jeg et javascript fra min asp kode? det ene er jo på serveren, og det andet er på clienten
Avatar billede heyde Nybegynder
02. januar 2004 - 00:27 #3
Jeg er ikke helt sikker på at jeg har forstået det rigtigt, men prøv nedenstående efter at du har kørt din update kode:
Response.Redirect "nyheder.asp"

Så vil den vist reloade nyheder.asp...
Jeg er ikke helt sikker på hvad der sker når nu det er en I-frame
Avatar billede moejensen Nybegynder
02. januar 2004 - 00:30 #4
det gør den også, men den gør det inde i iframen, og det skal jo være i det store vindue det sker :-(
Avatar billede eagleeye Praktikant
02. januar 2004 - 00:36 #5
Som jeg har vist. Der hvor du vil havde din redirect skirvr du den kode jeg har vist. Ja det bliver så clienten som står for reload af siden, men ASP redirect kan ikke havde et target. Du skal rette 'NAVN_PÅ_FRAME' til navnet på den frame som skal loade siden nyheder.asp:


<%
If bolWasPosted Then
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&server.mappath("/db/edc.mdb")
    Conn.execute ("UPDATE DISTINCTROW b SET sted = '"& request.form("sted") &"', type = '"& request.form("type") &"',pris = '"& request.form("pris") &"', bID = "& request.form("bid") &" WHERE id = "& request("id") &";")
    conn.close
    set conn = nothing
End if
%>
<script type="text/javascript">
  window.parent.frames['NAVN_PÅ_FRAME'].location.href = 'nyheder.asp';
</script>
Avatar billede moejensen Nybegynder
02. januar 2004 - 10:15 #6
den loades ikke i en frame, men i selve browservinduet
Avatar billede moejensen Nybegynder
02. januar 2004 - 10:20 #7
så fandt jeg ud ag det, jeg skulle bruge følgende:

<script type="text/javascript">
  window.parent.top.location.href='nyheder.asp';
</script>

tak for hjælpen
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