Hjælp hjælp Jeg har et stort problem og jeg håber der er nogen som kan hjælpe mig. problemet går ud på at jeg ikke kan få frem og tilbage knapper til at virke.
Det skal funger sådan at man har en menu som henter sin data fra en database en af dem ser fx. sådan ud:
svømning Mandag Hold A Hold B Hold C Hold D Tirsdag Onsdag Torsdag Fredag
når man så går ind og trykke på fx. Hold B ser man en beskrivelse af holdet og så skal der være en frem og tilbage knap så man kan blader mellen de forskellig svømme hold om mandagen, men det er her jeg ikke kan få den til ar virke. VIGTIGT HUSK på at menu bliver hente fra en database
Hvor hoved menu er fx Mandag. Hvor under menu er fx. Hold A.
Jeg ved ikke hvordan jeg ellers skal forklar dette, men hvis i er usikker på noget så bare skrive
Jeg kunne forestille mig din menu ligger i en træstruktur!?
Hvis: skal du lave en funktion som finder den forrige hold og en funktion den finder det næste hold. Disse funktioner kan du så bruge til dine frem og tilbage knapper.
der er bare en del mere.fx man har den øverste menu som du ser her:den er ikke i databasen. Batminton Håndbold Svømning når man så fx køre musen over svømning kommer der følgende menu frem nedunder:de er i en tabel som hedder MENU Mandag Tirsdag Onsdag Torsdag Fredag Hvis man så køre musen hen på fx Mandag kommer der:de er i en tabel som hedder UNDERMENU Hold A Hold B Hold C Hold D
når man så klikker på fx Hold B kommer den frem på skærmen og man kan se oplysningerne om hold B der er her jeg vil have frem og tilbage knapperne.Så jeg har fra tabel UNDERMENU valgt hold B og derefter kunne jeg så forstille mig at man skal vælge alt fra UNDERMENU som har Svømning og Mandag fordi så får man den liste som heder
Hold A Hold B Hold C Hold D
men den starter automatisk på den først post Hold A og jeg kan ikke den til at starte på Hold B og derefter rykke en frem hvis jeg fx klikker på Frem linket
problemet er at denne ikke starter på fx det Hold som er er blevet klikket på da når man så klikker på fx frem knappen så er det den forkert man kommer frem til.Og det hænger vel sammen??
con = Server.CreateObject("ADODB.Connection"); con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + Server.MapPath("../../database/saif.mdb"));
sql = ("SELECT * FROM Undremenu WHERE ID = '"+Request.QueryString("Id")+"'"); res = con.execute(sql); sql4 = ("SELECT * FROM Undremenu WHERE meid = '"+res.Fields("meid")+"' AND Id = '"+res.Fields("Id")+"'"); res4 = con.execute(sql4);
først vælger alt jeg fra undermenu som er lig med den der er blevet klikket på fx Hold B, derefter vælger jeg alt fra undermenu som har de tilknytninger som Hold B fx. Svømning og Mandag.
oki nu har jeg side og prøve om jeg kunne finde ud af det og jeg har fået lavet en frem knap. Men jeg har et problem, når jeg kommer til den sidst post skal den jo ikke vises mere. Det jeg har lavet ser sådan ud:
<%@Language=JavaScript %> <% con = Server.CreateObject("ADODB.Connection"); con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + Server.MapPath("../../database/saif.mdb")); sql = ("SELECT * FROM Undremenu WHERE Vare = '"+Request.QueryString("Id")+"'"); res = con.execute(sql); toid = res.Fields("Vare"); sql4 = ("SELECT * FROM Undremenu WHERE meid = '"+res.Fields("meid")+"' AND Id = '"+res.Fields("Id")+"'"); res4 = con.execute(sql4); vaid = res4.Fields("Vare"); %> <HTML> <BODY> <%while(vaid<=toid){%> <%res4.Move(1);}%> <%st = "test1.asp?Id="+vaid;%> <a href="<%=st%>">Frem</a> </BODY> </HTML>
Det virker godt nok, men som sagt den skal jo ikke visses når den er ved den sidste post og hvordan gøre man det?? og hvordan får man en Tilbage knap for sådan en kan jeg slet ikke får til at virke??
Jeg har meget svært ved at gennemskue din navne standard.
Ud fra hvordan jeg forstår din database struktur, ville jeg lave noget ligende dette:
undermenuRS = "SELECT alle undermenuer for dette menu punkt"
While Not (undermenuRS.eof Or undermenuRS.bof) If SelectedUndermenuID = undermenuRS("undermenuID") Then ' Udskriv en tilbage knap med checkID som ID NextIDIsFremID = true End If If NextIDIsFremID Then ' Udskriv frem knap med undermenuRS("undermenuID") End If checkID = undermenuRS("undermenuID") undermenuRS.movenext Wend
Jeg har selv fået Frem knappe til at virke ved at gøre sådanne: <%@Language=JavaScript %> <% con = Server.CreateObject("ADODB.Connection"); con.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + Server.MapPath("../../database/saif.mdb")); id = Request.QueryString("Id"); sql = ("SELECT * FROM Undremenu WHERE Vare= '"+id+"'"); res = con.execute(sql); toid = res.Fields("Vare"); sql3 = ("SELECT * FROM Undremenu WHERE meid = '"+res.Fields("meid")+"' AND Id = '"+res.Fields("Id")+"'"); res3 = con.execute(sql3); varid = res3.Fields("Vare"); sql4 = ("SELECT * FROM Undremenu WHERE meid = '"+res.Fields("meid")+"' AND Id = '"+res.Fields("Id")+"'"); res4 = con.execute(sql4); vaid = res4.Fields("Vare"); %> <HTML> <BODY> <%for(i=-1;!res3.EOF;i++){ res3.Move(1);}%> <%res3.MoveFirst;%> <%res3.Move(i);%> <%while(vaid<toid){%> <%res4.Move(1);}%> <%if(vaid>=varid){%> <%}else{%> <%res4.Move(1);%> <%st="test1.asp?Id="+vaid;%> <a href="<%=st%>">Frem</a><br> <%}%> </BODY> </HTML>
Men jeg kan ikke få en Tilbage knap til at virke den siger hele tiden at man ikke må gå tilbage ved du hvorfor, jeg er ikke helt sikker på jeg forstår dit fordi det er i VB.
Pga. performence kan man gå fremad i RS i ASP (mener måske man kan lave RSne med nogle parametere, så man kan gå både frem og tilbage, men så vidt jeg husker er de meget lansomme at arbejde med)
Uden at være ekspert i Jscript, så synes jeg ikke dette giver den store mening: for(i=-1;!res3.EOF;i++){ res3.Move(1); } Hvad gør den?
<%res3.MoveFirst;%> // gå til den første record i RS <%res3.Move(i);%> // Gå en record frem?? <%while(vaid<toid){%> // imens vaid er større end toid?
Jeg er ikke sikker på din løsning vil virke i alle tilfælde.
for(i=-1;!res3.EOF;i++){ res3.Move(1);} // den gør det at den tæller ind til den er efter den sidste post og så give den i den værdi fx hvis den sidste post er 4. tæller den 0 1 2 3 4 5 nu er den efter den sidte post så i er 5: Jeg gør så det at jeg beder den om at starte fra -1, så når den tæller ender den på 4 det vil sige at når jeg sætter i ind <%res3.Move(i);%> får jeg den sidste post som jeg så kan bruge senere. <%res3.MoveFirst;%> // ja den gå til den først.
<%while(vaid<toid){%> // så længe vaid er mindre ind toid ryk en frem i record RS det betyder så at jeg får den samme værdi som toid når den er færdig.
<%if(vaid>=varid){%>// tjek om den står ved den sidste post hvis den gør det skal der ikke ske nogen. Men hvis den ikke gør den skal den rykke en record frem og lave knappen Frem
Håber det er til at forstå. den virker nu, men der er nogen gang den ikke virke ved du hvorfor??
Jeg må indrømme jeg er lidt forviret omkring denne.
Når den ikke virker, hvad fejler den emd så?
Disse linie kan giver problemer: sql = ("SELECT * FROM Undremenu WHERE Vare= '"+id+"'"); res = con.execute(sql); toid = res.Fields("Vare"); sql3 = ("SELECT * FROM Undremenu WHERE meid = '"+res.Fields("meid")+"' AND Id = '"+res.Fields("Id")+"'"); res3 = con.execute(sql3); varid = res3.Fields("Vare"); sql4 = ("SELECT * FROM Undremenu WHERE meid = '"+res.Fields("meid")+"' AND Id = '"+res.Fields("Id")+"'"); res4 = con.execute(sql4); vaid = res4.Fields("Vare");
Hvis 1 af RSne ikke indeholder en record, vil din kode fejle. Du bruger 'er rundt om dine IDer, vil det sige de er tekstfelter indeholdene en tekst?
så laver den ikke nogen knapper og jeg kna ikke finde ud af hvorfor den ikke gør, det er kun to steder den gør det har du nogen ide om hvad det kan være??
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.