15. december 2005 - 01:55Der er
10 kommentarer og 1 løsning
huske id efter form
jeg er stødt på endnu et problem, som forhåbenligt er den sidste:
Mit problem er at det kode jeg har lavet og bøvlet med i lang tid, ikke tar den rigtige id med til tabel 3 forumID. Jeg har prøvet at sende noget fra min form hen til min indsætning i databasen via en hidden field. Men når jeg jeg tester det, giver den en fejl, der kommer simpelthen ikke en id med.
forumID'et skal være = med tabel 2 id. dvs, at når man skriver en reply på en bestemt emne, skal denne id følge med, så man kan loope all replys ud til den rigtige emne.
Jeg har også prøvet mange andre løsninger, men der looper den bare alle replys ud, uden at tage forbehold til hvilken emne der er skrevet på.
Har i en løsning på dette problem?
herunder er alt det information i skal bruge for at hjælpe mig (forhåbenligt:S)
set db = conn.execute("SELECT bruger.bruger, comment.reply FROM forum INNER JOIN (bruger INNER JOIN comment ON bruger.id = comment.UserID) ON forum.id = comment.forumID")
do while not db.eof %> <table width="100%"> <tr> <td width="25%"><%=db("bruger")%></td> <td width="75%"><%=db("reply")%></td> </tr> </table>
Hvorfor bruger du type="hidden" og Request.Form("forumID"), når du har Session("forumID") ..?
Du kan bare bruge: replyID = Session("forumID")
Du skal muligvis konverterer værdi til et tal:
replyID = CInt(Session("forumID"))
HUSK: En kommentar som "Men når jeg jeg tester det, giver den en fejl," kan vi ikke bruge til noget.. hvis du har tænkte at fortælle os at du får en fejl, kan du lige så godt fortælle os nøjagtigt hvilken fejl det er. Dvs, Copy & Paste!
nu har jeg ændret det der du sagde, som jeg også selv har prøvet først, men den kommer altid med værdien 0 eller ingenting.Meningen er jo netop at den helst skal komme med id 69 hvis beskeden jeg replyer på er id 69.
Hvor er det jeg går galt, som sikker er mange steder.
ja nu har jeg selv fundet ud af min dumhed, det eneste det krævede var selfølgelig bare at jeg satte min besked request(id)=seesion ("forumID") og så loope det ud sådan her:
set db = conn.execute("SELECT bruger.bruger, comment.reply FROM forum INNER JOIN (bruger INNER JOIN comment ON bruger.id = comment.UserID) ON forum.id = comment.forumID WHERE forum.id = "&ok&"")
theSurfer tak for den hjælp du gav mig, hvis du vil have dine point skal du bare sige til.
Hvordan ser din HTML kode ud, før man klikker på Reply-linket? Det er garanteret der, at fejlen ligger..
Jeg forestiller mig, at det skal ske sådan her:
1) Der er et indlæg, som man ønsker at svare på. Man klikker på Reply-linket, som hedder: reply.asp?rid=<%=rs("post_id")%>
2) På reply.asp aflæses værdien af rid fra querystring: <td><input type="hidden" name="forumID" value="<%=request.querystring("rid")%>"></td>
3) Formen submittes, når brugeren klikker på Send-knappen (som er submit), og oplysningerne sendes til commentDB.asp
4) I commentDB.asp kontrolleres at indeholdet af feltet "forumID" ikke er tom, og samtidigt skal der kontrolleres, om formen er submittet, eller om brugeren selv har indtastet "commentDB.asp" i adresse-feltet. F.eks.:
<% Option Explicit ' Alle variabler SKAL(!) defineres/dimmes! On error resume next ' forsæt selvom der er fejl -- skal kommenteres ved debugging!
if request.servervariables("request_method") = "POST" then ' brugeren har submittet formen
' ... kode her ...
dim replyID replyID = CInt(request.form("forumID")) ' prøv på at konverterer forumID til et tal
' Det er vigtigt at undersøge, om forumID indeholder det den skal indeholde! ' Jeg går ud fra, at dine ID-værdier er af typen tal. ' Vi vil derfor prøve på at konverterer værdien til et tal.. ' Hvis alt er OK, burde den returnerer fejlkoden 0. ' Hvis fejlkoden ikke er 0, er der fejl i forumID.
if err.number = 0 then ' fejlkoden 0 betyder "alt er ok" ' fortsæt med koden:
' ... kode ...
else ' fejlkoden er IKKE 0, dvs der er blevet manipuleret med forumID!
' vis evt en besked
end if
end if
Det er også en god ide, at undersøge om man må tilføje indlæg til tråden, eller om den er låst, hvis den kan være det.
jeg kan lige forklare hvordan jeg gør det, så må du sige hvis dete r helt galt:
1) jeg har en <td width="75%"><a href="emneTopic1.asp?id=<%=db("id")%>"><%=db("emne")%></a></td> jeg looper ud som emne. Så når man trykke rpå det link kommer man til beskeden.
Når man er på den nye side gør jeg dette:
session("forumID") = cint(request("id")) ok = session("forumID")
og laver sql sætningen:
set db = conn.execute("SELECT bruger.bruger, comment.reply FROM forum INNER JOIN (bruger INNER JOIN comment ON bruger.id = comment.UserID) ON forum.id = comment.forumID WHERE forum.id = "&ok&"")
hehe ok, jeg prøver at lave den check så, mange tak for hjælpen:D
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.