Avatar billede gyldenbrand Nybegynder
25. december 2007 - 18:19 Der er 14 kommentarer og
2 løsninger

Request.Qerystring i et frame

Hej, jeg har en fil der hedder 'dokument.asp' hvori jeg har et link der hedder:

<%
Response.write "<a href='indbakke_frame.asp?id=" & rs("id") & "' target='main'><img src='images/forsiden_03.gif' width='214' height='16' alt='' border='0'></a></td>"
%>

Den linker altså til mit frameset som hedder indbakke_frame.asp og henter fra databasen 'id'

I min indbakke_frame.asp åbner den 3 sider:

<frameset framespacing="0" border="0" frameborder="0" rows="70,*">
  <frame name="banner" scrolling="no" noresize target="contents" src="indbakke_top.asp">
  <frameset cols="223">
    <frame name="contents" target="main" src="indbakke_menu.asp" scrolling="no" noresize>
    <%
    Response.write ("<frame name='main' scrolling='auto' src='indbakke.asp?id='" & Request.Querystring("id") & "'>")
    %>
  </frameset>

Sådan har jeg sat koden op i framesettet.. min ide er at få 'id' med ind på indbakke.asp.. men det lykkedes ikke rigtigt.. nogen der har en ide om hvorfor? eller hvad jeg gør galt?
Avatar billede keysersoze Guru
25. december 2007 - 19:12 #1
et link til siden kunne hjælpe meget - men mit gæt er følgende;

Response.write ("<frame name='main' scrolling='auto' src='indbakke.asp?id=" & Request.Querystring("id") & "'>")
Avatar billede gyldenbrand Nybegynder
25. december 2007 - 19:25 #2
Okay du har ændret:

Response.write ("<frame name='main' scrolling='auto' src='indbakke.asp?id='" & Request.Querystring("id") & "'>")

til

Response.write ("<frame name='main' scrolling='auto' src='indbakke.asp?id=" & Request.Querystring("id") & "'>")

Det er også rigtigt nok.. men det virker stadig ikke :-(
Avatar billede keysersoze Guru
25. december 2007 - 19:36 #3
kan også se at dit link peger på main og ikke hele dit frameset så det burde heller ikke gøre den store forskel.

har du ikke mulighed for at give et link så vi kan se hvad der sker - resten ser umiddelbart rigtig nok ud.
Avatar billede gyldenbrand Nybegynder
25. december 2007 - 19:36 #4
Kan lige sige også.. altså linket virker fint nok og den åbner siden indbakke.asp
men den viser intet af indholdet på indbakke.asp, den kommer heller ikke med nogle fejl.. det er lidt spøjs
Avatar billede keysersoze Guru
25. december 2007 - 19:46 #5
hvis du højreklikker på frames og vælger egenskaber - hvordan ser adressen så ud?
Avatar billede gyldenbrand Nybegynder
25. december 2007 - 19:55 #6
Jeg kan desværre ikke linke til siden, da serveren ikke har password på lige i øjeblikket.. men jeg linker til filerne, som jeg ligger i et .txt dokument så du kan se dem.

Lige en bedre forklaring på det hele:

Mit websted starter med en default.asp
den er et frameset som deler siden i to.. top.asp og start.asp (main)

I start.asp kan man logge ind med sin bruger.. man kommer så videre ind til dokument.asp (main)

Inde i dokument.asp laver den så linket:

<%
Response.write "<a href='indbakke_frame.asp?id=" & rs("id") & "' target='main'><img src='images/forsiden_03.gif' width='214' height='16' alt='' border='0'></a></td>"
%>

hvilket åbner mit næste frame (indbakke_frame.asp)

Her er links til koderne:
default.txt (www.gyldenbrand.dk/help/default.txt)
indbakke_frame.txt (www.gyldenbrand.dk/help/indbakke_frame.txt)
Avatar billede gyldenbrand Nybegynder
25. december 2007 - 19:56 #7
Så siger den: indbakke_menu.asp
hmm.. der hvor indbakke.asp skulle være er der istedet indbakke_menu.asp
Avatar billede keysersoze Guru
25. december 2007 - 20:02 #8
du har to frames der hedder main
Avatar billede gyldenbrand Nybegynder
25. december 2007 - 20:12 #9
Nu har jeg prøvet at gøre sådan:

I framesettet; default.asp har jeg giver navnene:

<frame name="toppen" scrolling="no" noresize target="main" src="top.asp">
  <frame name="main" src="start.asp" scrolling="auto" noresize>

og i framesettet; indbakke_frame.asp:

<frame name="indbakke_top" scrolling="no" noresize target="contents" src="indbakke_top.asp">
  <frameset cols="223">
    <frame name="indbakke_menu" target="menu" src="indbakke_menu.asp" scrolling="no" noresize>
    <%
    Response.write ("<frame name='indbakke_indhold' scrolling='auto' src='indbakke.asp?id=" & Request.Querystring("id") & "'>")
    %>

og har i dokument.asp lavet linket om til:

<%
            Response.write "<a href='indbakke_frame.asp?id=" & rs("id") & "' target='indbakke_indhold'><img src='images/forsiden_03.gif' width='214' height='16' alt='' border='0'></a></td>"
            %>


men det gør akkurat det samme som før
Avatar billede gyldenbrand Nybegynder
25. december 2007 - 21:12 #10
Okay, nu tror jeg at jeg ved hvorfor den ikke viser noget indhold..
når jeg i indbakke_frame.asp laver det ene link i asp kode, så viser den slet ikke linket.. men når jeg skriver den i html kode, så virker siden perfekt.. problemet er bare, så kommer 'id' ikke med ind på siden.

Har du en ide om hvorfor den ikke kan tåle asp kode i indbakke_frame.asp
eller skrive jeg koden på en forkert måde?
Avatar billede gyldenbrand Nybegynder
25. december 2007 - 21:20 #11
Nu har jeg også prøvet at lave alt indhold i indbakke_frame.asp om til asp-sprog
nu kan den slet ikke vise noget..

Nogen ide om hvorfor et frameset ikke kan tåle asp?
Avatar billede keysersoze Guru
25. december 2007 - 21:30 #12
et framest kan sagtens tåle asp - det er kun et spm om at lave det rigtigt. det er svært ud fra ovenstående at gennemskue hvad der går galt men det er højst sandsynligt ret simpelt - så får du det engang lagt online så vi kan se det gør det det lidt nemmere at hjælpe.
Avatar billede gyldenbrand Nybegynder
25. december 2007 - 21:37 #13
Hvis jeg ikke lavet indbakke_frame.asp i asp kode... så viser den alle siderne, og udskriver fejlen:

Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Id ='.

indbakke.asp, line 19

Og det er jo netop fordi jeg på indbakke.asp kræver at få hentet 'id' fra Querystring
Og det kan jo kun lade sig gøre hvis jeg i min indbakke_frame.asp skriver linket om til asp kode og indrager Request.Queristring ("id")

Så i kort og godt må fejlen jo ligge i selve indbakke_frame.asp, her er koden:

<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>New Page 1</title>
</head>

<frameset framespacing="0" border="0" frameborder="0" rows="70,*">
  <frame name="top" scrolling="no" noresize target="contents" src="indbakke_top.asp">
  <frameset cols="223,*">
    <frame name="menu" target="ko" src="indbakke_menu.asp" scrolling="no" noresize>
   
  <frame name="main" src="indbakke.asp">
   
   
  </frameset>
  <noframes>
  <body>

  <p>This page uses frames, but your browser doesn't support them.</p>

  </body>
  </noframes>
</frameset>

</html>

indbakke.asp skal skrives om til asp.. men når jeg gør det, viser den ikke siden.
Avatar billede keysersoze Guru
25. december 2007 - 23:21 #14
et link behøver ikke være asp for at det kan tolkes af asp.

som du starter siden op i selve framesettet er det i din sidste kode ikke nogen querystring med som standard og det er du nødt til at tjekke på;

if request.querystring("id") = "" then
  response.write "tom"
else
  'din normale asp-kode
end if
Avatar billede gyldenbrand Nybegynder
26. december 2007 - 19:42 #15
Jeg har opgivet at lave det i et frameset.. jeg er gået tilbage til mit andet design, der ikke kræver et frameset.. nu virker det så også :-)

Men vil da gerne give halvt point som tak for din hjælp. så bare lav et svar
Avatar billede keysersoze Guru
26. december 2007 - 19:57 #16
helt i orden - frames er også roden til alt ondt :)
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