|
| Query påbagrund af link Fra : KRB | Vist : 474 gange 37 point Dato : 23-07-02 21:38 |
|
Hej Jeg har en hjemmeside der består af rammer i den ene ramme bliver der dannet nogen links på baggrund af en forespørgelse i en database. Når man klikker på et af disse link skal der hentes bestemt oplysninger frem i den anden ramme. Disse oplysninger afhænger dog af hvilket link jeg trykker på.
Så er der nogen der har et forslag til hvordan jeg kan gøre det. Jeg ønsker at det er den samme asp side der skal bruges hvergang man klikker på et link dog er det foreskellige oplysninger der skal komme frem alt efter hvilket link man klikker på.
Så hvordan gør man det og er det overhovdet muligt??
Håber der nogen der har nogen gode forslag.
| |
| Kommentar Fra : strarup |
Dato : 23-07-02 21:59 |
|
Hej Krb,
hvilken database gør du brug af? (access eller en anden)
og hvilken version af ASP?
mvh.
Strarup
| |
| Kommentar Fra : KRB |
Dato : 23-07-02 22:02 |
|
Access 2002 og asp skriver jeg i notepad og det er ikke asp.net
| |
| Kommentar Fra : strarup |
Dato : 23-07-02 22:31 |
|
eh... men er det så ASP 2.0 eller ASP 3.0?
har du opsat forbindelsen til din database?
hvilke felter/attributter gør du brug af? (evt. navne m.m. i overskrifter)
jeg prøver lige at danne mig et indtryk af hvordan du har opbygget det...
mvh.
Strarup
| |
| Kommentar Fra : strarup |
Dato : 23-07-02 22:39 |
|
hej igen,
ka' du evt. poste det du har lavet? (eller opdeling af forskellige asp sider der indgår..)
gør du evt. også brug af VB-script eller Java-script?
mvh.
Strarup
| |
| Kommentar Fra : KRB |
Dato : 23-07-02 22:41 |
|
Ok
Databasen er et billede arkiv. den har en tabel men flg. attribut værdier id, højde, bredde, filtype, beskrivelse, billede, link.
siden består af tre rammer i den øverste ramme er der links. Når man klikker på linket åbner der sig en ny side i de to andre rammer. Det jeg får i den ene ramme er lidt generelt om arkivet det jeg får i den anden ramme er en liste ovre de forskellige emner der er i arkivet. den liste blive generet ved select disticnt. Når jeg så klikker på et af disse link skal den åbne billederne fra dette emne i den ramme hvor jeg havde den generelle beskrivelse af billederne. Det første med at få dannet listen af unikke link virke fint, men det er når jeg trykker på et af linkene skal jeg have selected billederne fra netop denne værdi.
så på en eller anden måde skal jeg have værdien med ovre i den nye asp side som jeg bruger til at hente lige præcis de billeder fra det emne som brugeren har valgt.
håber det virke nogenlunde klart.
| |
| Kommentar Fra : gandalf |
Dato : 23-07-02 22:50 |
|
Hej KRB
Du bliver nødt til at refreshe siden for at få dette til at virke, med mindre du bruger en IFrame til din anden ramme. Ellers skal du til at bruge XMLhttp, og det er en længere historie.
Lad os så sige du har en tabel over personer som hver især har et unikt nummer i databasen, og i den ene ramme lister du alle personernes navne, og i den anden vil du så vise personen stamoplysninger. Dette gør du via din querystring på siden, f.eks.
<%
id = request.querystring("id")
%>
<html>
..... bla bla bla
<ramme 1>
<%
querystring = "select id,name from person"
....
while not rs.eof
response.write "<a href='thispage.asp?id=" & rd("id") & ">" & rs("person") & "</a>"
rs.movenext
wend
set rs = nothing
%>
</ramme 1>
<ramme 2>
<%
if not(id="") then
querystring="select * from person where id=" & id
....
response.write "Name = " & rs("name") & "<br>"
response.write "Phone = " & rs("phone") & "<br>"
set rs = nothing
end if
%>
</ramme 2>
Håber dette kan hjælpe dig.
Gandalf
| |
| Kommentar Fra : KRB |
Dato : 23-07-02 22:57 |
|
Hej Gandalf
Jeg er med på det du laver i ramme 1, men ikke i ramme 2 den skal jo have ID fra ramme 1 når han klikker på linket og det ser jeg ikke lige hvordan man får i din beskrivelse eller har jeg misforstået noget???
Det er mit første forsøg i at lave noget i asp så det er måske en stor mundfuld, men det må lade sig kunne gøre på den ene eller anden måde??
| |
| Kommentar Fra : gandalf |
Dato : 23-07-02 23:04 |
|
Ja det får den også for ID har den med sig.
Det som sker er når du trykker på et link, vil siden kalde sig selv igen med det ID som linket står til, f.eks.
thispage.asp?id=13
Så vil hele siden refreshes med det nye ID som er 13, og dette nummer vil så blive opsnappet request.querystring("id"). Og dette ID bliver så brugt i rammen nr 2's querystring. Med mindre du mener ramme=frame, for hvis det er tilfældet så har vi en helt anden situation. Jeg er her gået ud fra, at ramme = table.
Gandalf
| |
| Kommentar Fra : strarup |
Dato : 23-07-02 23:05 |
|
Hej Krb,
bruger du ikke include?
f.eks. som følger... -->
<% @language=vbscript %>
<% Option Explicit %>
<!-- #include file="dbconn.asp" -->
så de evt. har et fælles bindeled....
navnet på dbconn.asp er bare et eksempel på et evt. ASP script der sørger for connectionen til databasen...
mvh.
Strarup
| |
| Kommentar Fra : KRB |
Dato : 23-07-02 23:19 |
|
Hej Gandalf
Nej med ramme mener frames og ikke tabel.
Ellers tak for det første forslag.¨
| |
| Kommentar Fra : gandalf |
Dato : 23-07-02 23:24 |
|
Okay, så skal du i stedet gøre således. Hvor du putter en target på din <a href.
<ramme 1>
.....Includes.....
<html>
..... bla bla bla
<%
querystring = "select id,name from person"
....
while not rs.eof
response.write "<a target="frame2name" href='thispage.asp?id=" & rs("id") & ">" & rs("person") & "</a>"
rs.movenext
wend
set rs = nothing
%>
</ramme 1>
<ramme 2>
.....Includes.....
<html>
<%
id = request.querystring("id")
if not(id="") then
querystring="select * from person where id=" & id
....
response.write "Name = " & rs("name") & "<br>"
response.write "Phone = " & rs("phone") & "<br>"
set rs = nothing
end if
%>
</ramme 2>
Gandalf
| |
| Kommentar Fra : KRB |
Dato : 23-07-02 23:28 |
|
Tak for hjælpen det skal jeg nok få til at virke dog er der lige ensidste ting inden der er point på vej.
Hvad er includes hvad gør den funktion og hvordan skriver man den.
Takker
| |
| Kommentar Fra : gandalf |
Dato : 23-07-02 23:37 |
|
Det strarup hentyder til, er at når man laver database forbindelse så kan man bruge <!-- #include file="dbconn.asp" --> for at gøre det nemmere for sig selv, for i den asp står der en masse konstanter som man kan bruge til at lave sin forbindelse i stedet for at skulle huske alle de forskellige numre selv. Dette kræver dog, at du har dbconn.asp liggende.
Det er ikke fordi din kode ikke vil virke uden.
En inklude fil gør det nemt at holde styr på sin kode, hvis du foreksempel har nogle funktioner du bruger meget på alle dine sider, så er det smart at putte det ud i en inklude fil, så du kun skal vedligeholde et sted.
F.eks.
*********************************
Page1.asp
<%
function test(nr)
response.write nr*10;
end function
%>
page2.asp
<!-- #include file="page1.asp" -->
<%test(10)%>
page3.asp
<!-- #include file="page1.asp" -->
<%test(10)%>
*********************************
Hvis du nu finder ud af at test funktionen skal laves om, kan du nøjes med at gøre det i page1.asp, og ikke i alle 3 eller flere sider.
Gandalf
| |
| Accepteret svar Fra : gandalf | Modtaget 37 point Dato : 24-07-02 11:19 |
| | |
|
Jeg er ikke helt sikker på jeg forstår hvad du mener, men prøv noget
lignende:
dinside.asp:
<%
dim mode
mode = Request.Querystring("mode")
if mode = "side1" then
%>
side 1
<%
elseif mode = "side2" then
%>
side 2
<%
else
%>
side3
<%end if%>
Du skal bare indsætte elseif sætninger, indtil du ikke har brug for mere,
håber du kunne bruge svaret :)
// MarkJensen.dk
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|