Avatar billede steen_hansen Forsker
04. marts 2002 - 19:45 Der er 87 kommentarer og
1 løsning

Forum

Jeg har en indtastningsformular, som folk kan skrive i.

Ved tryk på knappen "Send indlæg", bliver variablerne i formularfelterne gemt i de respektive recordset i Access-databasen.

Jeg har så en anden side, som trækker indlæggene ud. Men det er jo ikke nok.

Spørgsmålet er så:
Hvordan kan jeg oprette et forum lig eksperten.dk's?

1. Jeg opretter dette spørgsmål.
2. I andre besvarer det mit spørgsmål.
3. Jeres besvarelser bliver postet under mit spørgsmål.

Håber I fatter meningen :o\
Avatar billede steen_hansen Forsker
04. marts 2002 - 20:05 #1
Flere point. Håber på snarlig respons.
Avatar billede bernhof Nybegynder
04. marts 2002 - 21:05 #2
hmm .. der er et spørgsmål om at opbygge din database korrekt.

du skal først og fremmest have disse felter:

- post_ID: Denne værdi bruges til identifikation af enhver post.

- post_parent: Denne værdi bruges til at specificere om den pågælende post er en besvarelse eller et spørgsmål - det er en reference til en anden post's ID (post_ID).
Fx hvis en post har post_parent = 3 så er den en besvarelse til den post hvor post_ID = 3. Derimod hvis en post har post_parent = 0 og fx post_ID = 12 er den et spørgsmål, og andre posts kan referere til denne post med post_parent = 12. (indviklet ? :)

- post_subject: Emnet på en post (ligemeget om den er en besvarelse eller et spørgsmål - en feature som eksperten ikke har, men måske nok heller ikke har brug for :)

- post_author: Reference til brugeren, som har oprettet spørgsmålet - brugerne placerer du i en separat tabel.

- post_content: Beskedens indhold.

Senere kan du jo selv tilføje flere felter, men lige umiddelbart ville jeg mene, at disse er de vigtigste.

Jeg har selv lige haft brugt lange tider på at udvikle et ret indviklet forum med masser af spændende features, så det er måske ikke bare lige sådan at forklare hver detalje...

Hvis du har yderligere spørgsmål, så fyr løs! :)
(hvor længe har du programmeret ASP?)

/Mikbj
Avatar billede bernhof Nybegynder
04. marts 2002 - 21:07 #3
(kald felterne hvad du har lyst til så du selv kan finde rundt i dem, men disse var bare mine forslag :)
Avatar billede steen_hansen Forsker
04. marts 2002 - 21:42 #4
Jeg skal tages lidt i hånden. Jeg kender en del Visual Basic og noget VB-scripting. Men nogen haj er jeg ikke.

Dette lægger indlæggene ned i recordset i db:

<%
if request.form("send_debatemne") >"" then
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

strSQL = "insert into debat (nick, emne, kommentar) values('" & Replace(Request.Form("nick"),"'","''") & "', '" & Replace(Request.Form("emne"),"'","''") & "', '" & Replace(Request.Form("kommentar"),"'","''") & "')"

Conn.Execute(strSQL)

response.redirect ("default.asp")

Conn.Close
Set Conn = nothing
end if
%>


Dette her trækker data ud af databasen:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT nick, emne, kommentar FROM debat"
Set RS = Conn.Execute( SQL )

while NOT RS.EOF
text=RS("kommentar")
text = replace(text,vbcrLF,"<br>")
    response.write "<tr><td><span class=""tekst11""><b>" & "Af: " & "</b></span>" & "<span class=""tekst11""><i>" &  RS("nick") & "</i></span></td></tr>"
    response.write "<tr><td><span class=""tekst11""><p align=""justify"">" & text & "</p></span></td></tr>"
    response.write "<tr><td colpan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"
RS.MoveNext
text=""
wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>

Det vil reelt sige, at man kan se en side, hvor der er nogle indlæg, og man kan føje sine egne til. Det virker perfekt, men man kan ikke andet. Jeg vil selvfølgelig gerne have, at man kan oprette et spørgsmål, og at folk kan besvare eller kommentere det (IKKE eksperten.dk om igen).

Jeg kan næsten regne ud, at det er en halvkompliveret sag?
Avatar billede steen_hansen Forsker
04. marts 2002 - 21:44 #5
halvkompliveret = halvkompliceret
Avatar billede steen_hansen Forsker
04. marts 2002 - 21:46 #6
Jeg vil gerne have, at man kan trykke på et link/en knap: "Opret nyt debatemen".

Når det er oprettet, skal det trækkes ud på en liste over oprettede debatemner som et link, og så kan man besvare det, eller kommentere det.
Avatar billede steen_hansen Forsker
04. marts 2002 - 22:05 #7
mikbj, kan du give mig nogle konkrete eksempler på, hvordan post_ID m.m. ser ud i et stykke kode?
Avatar billede bernhof Nybegynder
04. marts 2002 - 22:15 #8
Jeg kan se du kender lidt til SQL

hvis du gør, som jeg siger mht. post_parent og post_ID, kan det lade sig gøre at hente alle debatemner vha.

SELECT post_ID, emne, nick FROM debat WHERE post_parent = 0

på den måde henter du alle posts, som ikke har nogen "parent" -- disse posts er alle debatemner..

omvendt kan du hente alle besvarelser til et debatemne, hvis dette debatemne fx har post_ID = 6 vha. SQL-sætningen:

SELECT post_ID, nick, emne, kommentar FROM debat WHERE post_parent = 6

det er en del mere indviklet end bare lige at komme med noget kode, men du kan bare spørge! :)

/Mikbj
Avatar billede steen_hansen Forsker
04. marts 2002 - 22:44 #9
Jaaa, du skal ikke lade dig narre :o) Jeg har fået en del hjælp fra en ven.

Hvis jeg skal trække et emne ud, kunne jeg FORESTILLE mig, at det skulle se ud som noget i denne retning:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT post_ID, emne, nick FROM debat WHERE post_parent = 0"
Set RS = Conn.Execute( SQL )

while NOT RS.EOF
response.write "<tr><td><span class=""tekst11""><b>" &  RS("emne") & "</b></span></td></tr>"
response.write "<tr><td><span class=""tekst11""><b>" &  RS("nick") & "</b></span></td></tr>"
response.write "<tr><td colpan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"
RS.MoveNext
text=""
wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>

Men det virker overhovdedet ikke. Som sagt: Jeg skal nok tages i hånden :o)
Avatar billede bernhof Nybegynder
04. marts 2002 - 22:55 #10
hvordan virker det ikke?
laver den fejl i koden?
har du husket at lægge de nye felter post_ID og post_parent ind i databasen?

Desuden skal den side, hvor du henter indlæg laves om, da du nu ikke skal hente alle indlæg, men kun dem, som tilhører det debatemne du har klikket på!

Derfor skal du lave en lille reference til hvilken post du vil åbne ved at skrive i hvert link i oversigten over debatemner:

<a href="post.asp?id=<%=RS("post_ID")%>"><%=RS("nick")%></a>

Nu kan du på post.asp (eller hvad du nu kalder siden, hvor du henter 1 debatemne, plus dets besvarelser) se hvilken post, der blev refereret til ved at skrive:

SQL = "SELECT post_ID, emne, nick, kommentar FROM debat WHERE post_ID = " & Request.QueryString("id")

ovenfor henter du debatemnet

nu skal du så hente besvarelserne:

SQL = "SELECT post_ID, nick, emne, kommentar FROM debat WHERE post_parent = " & Request.QueryString("id")

Forstår du? :)

/Mikbj
Avatar billede bernhof Nybegynder
04. marts 2002 - 22:57 #11
Det er nok også lidt svært at forklare, så jeg kan godt forstå hvis du lige umiddelbart tænker "PIS!" :)
Avatar billede steen_hansen Forsker
04. marts 2002 - 22:58 #12
UPS! Der sov jeg vist lidt meget i timen. Første ting først:

post_ID og post_parent skal lægges ind som autonummering?
Avatar billede steen_hansen Forsker
04. marts 2002 - 22:59 #13
Nej, det skal det jo ikke, eftersom Access kun accepterer én autonummering.
Avatar billede bernhof Nybegynder
04. marts 2002 - 23:06 #14
post_ID er Autonummerering
post_parent er bare nummer

..

jeg kan anbefale at holde standarden i databasen ved også at kalde resten af dine felter for post_*  (fx post_nick og post_emne) -- hvis altså du grider rette det på din side -- det er op til dig
Avatar billede steen_hansen Forsker
04. marts 2002 - 23:10 #15
DET VIRKER! Næsten da :o)

Jeg vil lige prøve at lægge din <a href="post.asp?id=<%=RS("post_ID")%>"><%=RS("nick")%></a> ind.

Jeg TROR jeg er ved at se lyset :o)
Avatar billede steen_hansen Forsker
04. marts 2002 - 23:11 #16
Kan det ikke gøres ved at rette post_ID til den nuværende ID?
Avatar billede steen_hansen Forsker
04. marts 2002 - 23:11 #17
Jeg har jo lavet noget andet også, som også skal rettes til så.
Avatar billede bernhof Nybegynder
04. marts 2002 - 23:15 #18
Ok .. men det er generelt vigtigt at alle tabeller har et felt, som tildeler alle records et helt unikt kendetegn, som fx autonummerering .. men det ved du højst sandsynligt godt! :)

Jeg vender tilbage imorgen (måske først i overmorgen - 6. marts) med lidt videre hjælp, hvis der er brug for det...

Held og lykke indtil da! :)

/Mikbj
Avatar billede steen_hansen Forsker
04. marts 2002 - 23:16 #19
Du skal foreløbigt have 354354545 tak for hjælpen, min nye bedste ven! :o)
Avatar billede steen_hansen Forsker
04. marts 2002 - 23:32 #20
Når du nu får tid, så der min kode sådan her ud nu:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT post_ID, emne, nick FROM debat WHERE post_parent = 0"
Set RS = Conn.Execute( SQL )

while NOT RS.EOF
response.write "<tr><td=""50%""><span class=""tekst11"">" &  RS("nick") & "</span></td>"
response.write "<td=""50%""><span class=""tekst11""><b>" &  RS("emne") & "</b></span></td></tr>" & "<br>"
response.write "<tr><td=""100%"" colpan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"
RS.MoveNext
text=""
wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
Avatar billede steen_hansen Forsker
04. marts 2002 - 23:33 #21
Hvor skal

<a href="post.asp?id=<%=RS("post_ID")%>"><%=RS("nick")%></a>

sættes ind henne? Det er kun emnet, der skal agere link.
Avatar billede steen_hansen Forsker
07. marts 2002 - 13:17 #22
Hej mikbj!

Er du klar? :o)
Avatar billede bernhof Nybegynder
07. marts 2002 - 15:54 #23
Hej steen.. desværre har mit internet været nede i et lille stykke tid nu, og jeg sidder i øjeblikket på arbejdet ;)

Jeg kom til at skrive forkert - nick skulle rettes til emne:

<a href="post.asp?id=<%=RS("post_ID")%>"><%=RS("emne")%></a>

Linien kommer nu til at se således ud:

Response.write "<tr><td=""50%""><span class=""tekst11""><a href=""post.asp?id=" & RS("post_ID") & ">" & RS("emne") & "</a></span></td>"

Denne linie skal indsættes istedet for den første linie efter

while NOT RS.EOF

.. altså istedet for:

response.write "<tr><td=""50%""><span class=""tekst11"">" &  RS("nick") & "</span></td>"

Se hvad der sker! :)
Avatar billede bernhof Nybegynder
07. marts 2002 - 15:55 #24
Undskyld!

den skal indsættes istedet for den anden linie efter

while NOT RS.EOF

.. altså istedet for linien:

response.write "<td=""50%""><span class=""tekst11""><b>" &  RS("emne") & "</b></span></td></tr>" & "<br>"

:)
Avatar billede bernhof Nybegynder
07. marts 2002 - 15:58 #25
ØV .. nu laver jeg bare mange fejl ... :D

Glem mine ovenstående to svar, og se her:

Istedet for nr. 2 linie efter "while NOT RS.EOF" indsætter du denne linie:

Response.Write "<td=""50%""><span class=""tekst11""><b><a href="post.asp?id=" & RS("post_ID") & ">" & RS("emne") & "</a></b></span></td></tr>" & "<br>"

Sådan! :) Nu er den der vist! :)
Avatar billede steen_hansen Forsker
07. marts 2002 - 16:55 #26
Hej mikbj!

Jeg vil prøve at kigge på det med det samme. Tror du, at din forbindelse er i orden i aften?
Avatar billede steen_hansen Forsker
07. marts 2002 - 17:03 #27
Nu er du sikkert gået hjem for i dag, men hvor kommer post.asp fra? Jeg synes ikke vi har gennemgået den? Jeg får flg. fejl:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/front/udtraek_post.asp, line 14

Response.Write "<td=""50%""><span class=""tekst11""><b><a href="post.asp?id=" & RS("post_ID") & ">" & RS("emne") & "</a></b></span></td></tr>" & "<br>"
Avatar billede bernhof Nybegynder
07. marts 2002 - 17:40 #28
Hej steen.. dette bliver mit sidste svar for idag .. min internetforbindelse kommer muligvis først op at køre imorgen :(

Here's how it goes:

Den side vi arbejder på lige nu, er siden med oversigt over debatemner. Når man klikker på det link de sidste par svar har handlet om, sendes man til siden post.asp, som er siden, hvor du viser debatemnet der blev klikket på.

mht. til fejlen er det endnu engang min fejl :)
linien skal se sådan ud:

Response.Write "<td=""50%""><span class=""tekst11""><b><a href=""post.asp?id=" & RS("post_ID") & """>" & RS("emne") & "</a></b></span></td></tr>" & "<br>"

Mvh. Mikkel
Vi snakkes ved imorgen.
Avatar billede steen_hansen Forsker
07. marts 2002 - 18:33 #29
YES! Nu begynder det at ligne noget.

Nu er det jo lavet lidt bagvendt; jeg har ikke oprettet nogen post.asp. Men det kommer vi vel til?

Håber du får tid/lyst til at fortsætte i morgen. :o)

//Steen
Avatar billede bernhof Nybegynder
08. marts 2002 - 15:46 #30
Så er jeg tilbage .. men kun indtil kl. 18:00 .. fik endelig besked idag: mit internet kommer først op at køre mandag aften :(

post.asp:

jeg skriver ikke hele koden, men nogle småstykker .. resten kan du vel selv bikse sammen (design/opstilling osv.). :)

Altså du skal starte med at hente debatemnet. det skal stå øverst på siden. dette gør du med koden:

SQL = "SELECT emne, kommentar, nick FROM debat WHERE post_ID = " & Request.QueryString("id")
Set RS = Conn.Execute (SQL)

forklaring:
Request.QueryString("id") henter xx i linket:
post.asp?id=xx
på den måde ved vi hvilket debatemne der er tale om, og benytter denne værdi i ovenstående SQL-streng.

Nu skal vi så hente alle besvarelserne (hvis der er nogen)! Kode:

SQL = "SELECT emne, kommentar, nick FROM debat WHERE post_parent = " & Request.QueryString("id")
Set RS = Conn.Execute(SQL)

Lav et loop som i filen med med oversigt over debatemner og løb besvarelserne igennem og udskriv dem under debatemnet...

Ovenstående kan du jo arbejde lidt med.
Håber det er til at overskue! :)

/Mikkel
Avatar billede steen_hansen Forsker
08. marts 2002 - 16:58 #31
Surt show! Hvad er der galt med din forbindelse? :o(

Jeg vil prøve det af og HÅBER, at jeg kan nå at svare dig inden kl. 18 :o)

Hvis ikke vi snakkes ved inden, så må du have en rigtig god weekend.
Avatar billede steen_hansen Forsker
08. marts 2002 - 17:22 #32
FUK! Der er sket et teknisk uheld, Mikkel. Jeg skal lige rydde op. Kan du have en god weekend! Snakkes forhåbentlig ved på mandag.
Avatar billede bernhof Nybegynder
08. marts 2002 - 18:02 #33
Snakkes!
Avatar billede bernhof Nybegynder
12. marts 2002 - 17:11 #34
Hej Steen.

Har du fået kigget på koden?

/Mikkel

P.S. - mit internet er nede og vil være det i ubestemt tid endnu, så jeg kan kun svare fra kontoret. Jeg vender først tilbage torsdag (medmindre jeg er så heldig at få nettet op at køre idag eller imorgen! :), så du kan jo kigge lidt på det imens, hvis du ikke allerede har.
Avatar billede steen_hansen Forsker
12. marts 2002 - 17:16 #35
Hej Mikkel!

Jeg HAR fået kigget på det, og fået det til at virke delvist. Men jeg har problemer med at skelne mellem hvornår det er et nyt debatpåløg, og hvornår det er en besvarelse på et eksisterende. Jeg lægger koden herind senere i aften. Så kan du jo kigge på det, hvis du har tid/lyst :o)

Håber for dig, at du får dit Internet op at køre snart. Det er da en bitch? :o(
Avatar billede steen_hansen Forsker
12. marts 2002 - 17:16 #36
debatpåløg = debatoplæg :o)
Avatar billede bernhof Nybegynder
13. marts 2002 - 19:35 #37
Så! Nu kører nettet igen! :)

Når du skal skelne mellem disse to ting, skal du kigge på post_parent.
Hvis post_parent = 0, så er det et debatoplæg.
Hvis post_parent > 0, så er det en besvarelse til et eksisterende debatoplæg, hvilket har samme post_ID som post_parent i besvarelsen. til at forstå? :)

Eks.:

Jeg opretter et debatoplæg. Dette debatoplæg får post_ID = 33 i databasen.
En person laver en besvarelse til dette debatoplæg, som får post_parent = 33 -- altså den referer til debatoplægget.
Avatar billede steen_hansen Forsker
13. marts 2002 - 23:25 #38
Fedt nok! Det er også længe at være uden Internet :o)

Jeg har forstået din pointe. Jeg har været på arbejde, og er først kommet hjem 23:15, så jeg har ikke haft tid til at lægge koden ud. Jeg vil gøre endnu et forsøg i morgen aften. Håber du har tålmodighed :o)

Du har rigeligt fortjent dine point. Når vi har fået orden på det her, opretter jeg et nyt spørgsmål, som jeg håber du har tid til at hjælpe med.

//Steen
Avatar billede bernhof Nybegynder
14. marts 2002 - 18:32 #39
Ok .. det lyder godt, men altså du behøver skam ikke oprette et nyt spm... jeg har ikke noget imod at hjælpe dig yderligere :)
Avatar billede steen_hansen Forsker
14. marts 2002 - 20:51 #40
Du er min nye bedste ven :o) Du får point alligevel

LST_DEBAT.ASP:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT emneID, emne, nick FROM debat WHERE post_parent = 0"
Set RS = Conn.Execute( SQL )

while NOT RS.EOF
response.write "<tr><td width=""30%""><span class=""tekst11"">" &  RS("nick") & ":" & "</span></td>"
response.write "<td width=""70%""><span class=""tekst11""><b><a href=""debatemne.asp?emneID=" & RS("emneID") & """>" & RS("emne") & "</a></b></span></td></tr>"'
response.write "<tr><td><span class=""tekst11""><b>" &  RS("emne") & "</b></span></td></tr>"
'response.write "<tr><td colpan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"
RS.MoveNext
text=""
wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>

DEBATEMNE.ASP (til FRM_DEBATSVAR.ASP" - til at besvare debatemne):

<%
if request.form("send_debatemne") >"" then
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

strSQL = "insert into debat (nick, emne, brodtekst, kommentar) values('" & Replace(Request.Form("nick"),"'","''") & "', '" & Replace(Request.Form("emne"),"'","''") & "', '" & Replace(Request.Form("brodtekst"),"'","''") & "', '" & Replace(Request.Form("kommentar"),"'","''") & "')"

Conn.Execute(strSQL)

response.redirect ("default.asp")

Conn.Close
Set Conn = nothing
end if
%>

DEBATEMNE.ASP (til FRM_DEBAT.ASP - opret nyt debatemne):

Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT emneID, nick, emne, brodtekst, kommentar FROM debat WHERE emneID = " & Request.QueryString("emneID")
Set RS = Conn.Execute (SQL)

while NOT RS.EOF
response.write "<tr><td><span class=""overskrift17""><b>" &  RS("emne") & "</b></span></td></tr>"
response.write "<tr><td><span class=""tekst11"">" & "<i>" & "Af: " & "</i>" &  RS("nick") & "</span></td>"
response.write "<tr><td colspan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"
response.write "<tr><td><span class=""tekst11""><b><p align=""justify"">" & RS("brodtekst") & "</p></b></span></td>"
kommentar = replace( RS("kommentar"),vbcrLF,"<br>")

response.write "<tr><td colspan=""2""><span class=""tekst11""><p align=""justify"">" & kommentar & "</p></span></td></tr>"
RS.MoveNext
text=""
wend
response.write "<tr><td colspan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>

Min database (recordset):

emneID
post_ID
post_parent
nick
emne
brodtekst
kommentar

emneID er den fortløbende, nummeriske autonummerering
Både post_ID og post_parent får tildelt værdien 0 (nul)

Hvad gør jeg galt? Jeg kan ikke hæfte værdien emneID til post_parent.

post_ID er egentlig overflødig, eftersom jeg benytter emneID istedet.
Avatar billede bernhof Nybegynder
14. marts 2002 - 22:14 #41
fint -- du bestemmer selvfølgelig selv om du vil bruge post_ID eller emneID .. du skal bare huske at tilpasse koden, til hvilken af dem du bruger.

Jeg skal lige høre én ting: Hvad er forskellen på kommentar og brodtekst?

Og hvis du ikke har noget imod det, kunne jeg godt tænke mig at gøre koden lidt mere overskuelig ved at ændre lidt på opstillingen... Ville du have noget imod det? - hvis ikke, kan jeg lige poste en "ændret" udgave (udfører samme handlinger).

/mikkel.

P.S. I hvilken fil mener du at du ikke kan hæfte emneID til post_parent? er det i FRM_DEBATSVAR.ASP?
Avatar billede steen_hansen Forsker
14. marts 2002 - 22:47 #42
Hej Mikkel!

"kommentar" er en dårlig betegnelse for selve teksten, debatemnet. Nu ville jeg bare prøve at lege med det i første omgang. Når jeg har set lyset, vil jeg strukturere hele sitet og starte fra scratch igen.

Brødtekst er en indledning til emnet, som bliver fremhævet med fed. Det er ikke sikkert, at det skal med; jeg tror ikke det er nødvendigt for at kunne debattere. Bare lidt leg, for at se hvordan det tager sig ud på sitet.

Har du forslag til at gøre koden mere overskuelig, skal du være mere end velkommen. Jo mere idiot/Steen-sikkert, desto bedre :o)

Jeg kan ikke vedhæfte emneID til noget som helst. Jeg har oprettet FRM_DEBAT.ASP til nye debatemner og FRM_DEBATSVAR.ASP til besvarelse af oprettede emner. Om det er den rigtige måde, ved jeg ikke. Men det er et forsøg.

Formålet med min side er, at nybegyndere kan komme sikkert igang. Derfor vil jeg hovedsageligt lægge hovedvægten på instruktioner (tutorials). Men også en mulighed for at debatere forskellige problemer, i stil med eksperten.dk. Dog uden noget ønske om at blive en konkurrent, den bliver svær at matche! Men tit og ofte bliver man af andre brugere på eksperten.dk "smidt ind i en sammenhæng", som man overhovedet ikke har mulighed for eller kompetence til at overskue. Det er meningen, at brugerne "skal tages i hånden" og blive guidet (delvist) igennem de emner, som han eller hun nu godt kunne tænke sig at lære noget om. Jeg ved der findes mange gode sites, også gode i pædagogisk forstand. Men efter min mening ikke gode NOK.
Når jeg har fået struktureret sitet, kunne jeg godt tænke mig at efterlyse nogle skribenter, som på meget pædagogisk vis, og visuelt, kan "tage brugerne i hånden" og vise dem det helt fundamentale, og langsomt, men sikkert, hjælpe dem godt og grundigt på vej. Ville det være noget for dig, at gå i gang med f.eks. SQL og VB-scripting? Mange af de spørgsmål, som folk (inklusive mig selv) stiller igen og igen, kan man jo lave artikler over, så man på den måde kan få det bedst mulige overblik. Hvis du ikke kender en dyt til servere, er det lidt abstrakt at få noget at vide om f.eks. "domæne-controllere", hvis ikke man har den basale viden i orden. Kan du følge mig?
Jeg kan ikke tilbyde dig honorarer. Men du skal få æren for evt. artikler, et skulderklap, et varmt håndtryk og en dybfølt tak. Tænk over det. Jeg synes du er i besidelse af store pædagogiske evner, du kan udtrykke dig på en usansynlig letforståelig måde. Tænk lidt over det, inden du siger nej :o) Allerede dette emne, du er ved at hjælpe mig med, kunne være en fed hjælp til andre newbies. Jeg ville ønske, at jeg kunne blive ført igennem det grundliggende med nogle konkrete eksempler på, hvordan det KAN laves. Har man et fundament at bygge på, vil det senere hen være nemmere at erhverve sig yderligere og mere dybdegående viden.
NU skal du nok få fred. Du skal jo også i seng på et tidspunkt :o)
Håber du vil overveje det.
Avatar billede steen_hansen Forsker
14. marts 2002 - 22:51 #43
Man kan så sige, at der findes MASSER af hjælp i form af andre sites, virkeigt gode bøger m.m.m. Hvad skal vi bruge endnu et site til? Men jeg kunne godt tænke mig at lave et OVERSKUELIGT site, som også kunne give nybegynderen et solidt indblik i, hvad der findes af muligheder. Og hvordan man reelt får taget de første skridt. Al begyndelse er (kan være) svær.
Avatar billede steen_hansen Forsker
14. marts 2002 - 22:55 #44
MEN .... nu er jeg ude i nogle fremtidsvisioner :o) I første omgang vil jeg blive meget glad for hjælp til min konkrete problemer, inden jeg begynder at tage hul på de tutorials.
Avatar billede bernhof Nybegynder
15. marts 2002 - 20:28 #45
Jeg vil da gerne deltage i dit projekt, som skribent/hjælpene hånd, men det kan selvfølgelig ikke være noget "fuldtids" :). Jeg har arbejde og skole, som skal passes og selvfølgelig også en fritid, som gerne involverer andet end computere! :)

Hvis du vil kontakte mig uden for Eksperten kan du finde mig på:
E-mail: mikkel@drunkencow.dk
ICQ: 66648452

Mht. til den kode jeg jo faktisk er ved at hjælpe dig med, holder vi os til Eksperten, da andre brugere måske senere kan få gavn af dette spørgsmål.

-----------

Bemærk!
Når jeg skriver FRM_DEBATSVAR.ASP mener jeg selve siden med formen, hvormed man kan besvare et debatemne.

-----------

Når du linker til FRM_DEBATSVAR.ASP skal du huske at videreføre emneID fra debatemnet, som besvares.

Eks:

Du står på DEBATEMNE.ASP og læser debatemnet med emneID 22. Du klikker på "Besvar"

Linket "Besvar" skal se ud som følger:

<a href="FRM_DEBATSVAR.ASP?emneID=22">Besvar</a>

Tallet (emneID) 22 videreføres hermed til FRM_DEBATSVAR.ASP, så FRM_DEBATSVAR.ASP er klar over hvilket emne der besvares.

i ASP-koden kunne linien, som udskriver linket se således ud:

<%
Response.Write "<a href=""FRM_DEBATSVAR.ASP?emneID=" & Request.QueryString("emneID") & """>Besvar</a>"
%>

... eller uden for ASP-tags ( <% og %> ) blot:

<a href="FRM_DEBATSVAR.ASP?emneID=<%=Request.QueryString("emneID")%>">Besvar</a>

Med Request.QueryString("emneID") henter jeg det id, som blev sendt til DEBATEMNE.ASP fra LST_DEBAT.ASP og viderefører det til FRM_DEBATSVAR.ASP.

I FRM_DEBATSVAR.ASP udskriver du nu det videreførte emneID til et hidden felt, som i HTML kunne se således ud:

<input type="hidden" value="22" name="post_parent">

.. hvor 22 er det videreførte emneID.
ASP-Koden som udskriver denne linie kunne se således ud:

<%
Response.Write "<input type=""hidden"" value=""" & Request.QueryString("emneID") & """ name=""post_parent"">"
%>

... eller uden for ASP-tags blot:

<input type="hidden" value="<%=Request.QueryString("emneID")%>" name="post_parent">

(husk at lægge dette hidden felt inden for dine <form> og </form> tags).

Når du submitter formen bliver emneID'et IGEN videreført i form af Request.Form("post_parent") og ikke længere Request.QueryString("emneID"). :)
På siden hvor du indsætter i databasen vha. SQL vælger du nu blot at post_parent-værdien for den nye besvarelse skal være lig med post_parent-værdien, som du videresendte vha. hidden-feltet - nemlig: Request.Form("post_parent").

Altså:

strSQL = "insert into debat (post_parent, nick, emne, brodtekst, kommentar) values(" & Request.Form("post_parent") & ",'" & Replace(Request.Form("nick"),"'","''") & "', '" & Replace(Request.Form("emne"),"'","''") & "', '" & Replace(Request.Form("brodtekst"),"'","''") & "', '" & Replace(Request.Form("kommentar"),"'","''") & "')"

Conn.Execute(strSQL)

---------

Puha.. det var en ordentlig smøre.
Det virker lige måske lidt uoverskueligt/besværligt, men tag det skridt for skridt. :)

Stil endelig spørgsmål!

Mvh. Mikkel

P.S.: Det kan jo være jeg har været uheldig at lave nogle tastefejl i kodestumperne, så tjek dem evt. lige igennem selv inden du fortvivler over mystiske fejl! :)
Avatar billede steen_hansen Forsker
17. marts 2002 - 09:13 #46
Mikkel, det er imponerende!

Jeg gik i gang med dine svar i går, men fik ikke tid til at gennemgå det hele. Kigger på det senere i dag. Jeg lægger også en mail til dig senere. Min nye bedste ven :o)
Avatar billede bernhof Nybegynder
20. marts 2002 - 16:45 #47
Hvad så, steen... har du fået kigget lidt på det hele? :)
Avatar billede bernhof Nybegynder
25. marts 2002 - 16:00 #48
Kan du få det til at virke?? :)
Avatar billede steen_hansen Forsker
25. marts 2002 - 16:24 #49
Heeej Mikkel!

Jeg har haft dårlig samvittighed; jeg har været ude at sætte pc'ere op og ikke været meget hjemme.

Jeg regner med at jeg i løbet af i morgen får fulgt dine anvisninger. Jeg har det også dårligt med, at jeg ikke har fået prøvet det af endnu, det er jo spændende :o)

Jeg regner som sagt med at få kigget seriøst på det i morgen formiddag. Bedste ven :o)
Avatar billede bernhof Nybegynder
26. marts 2002 - 03:46 #50
Hehe :)

jeg var sådan set bare nysgerrig, og ville gerne høre om, hvad jeg havde skrevet kunne bruges til noget... det var ikke min mening at skynde på dig :)
Tag dig god tid!

/Mikkel
Avatar billede steen_hansen Forsker
26. marts 2002 - 21:48 #51
Hej Mikkel!

Jeg har NÆSTEN fået nærlæst dit indlæg, men det drejer sig (i STORE træk) om at:

1. Oprette et emne, som automatisk får et fortløbende emneID
2. Knytte nogle indlæg til dette bestemte emneID

Så langt, så godt. Næste trin må være, som jeg har forstået det, at:

1. I LST_DEBAT.ASP, som ser sådan her ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT emneID, emne, nick FROM debat WHERE post_parent = 0"
Set RS = Conn.Execute( SQL )

while NOT RS.EOF
response.write "<tr><td width=""30%""><span class=""tekst11"">" &  RS("nick") & ":" & "</span></td>"
response.write "<td width=""70%""><span class=""tekst11""><a href=""debatemne.asp?emneID=" & RS("emneID") & """>" & RS("emne") & "</a></span></td></tr>"'
response.write "<tr><td><span class=""tekst11"">" &  RS("emne") & "</span></td></tr>"
RS.MoveNext
text=""
wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>

skal jeg henvise til det emneID, som jeg gerne vil besvare/kommentere. Det har jeg gjort v.hj.a.

<a href=""debatemne.asp?emneID=" & RS("emneID") & """>" & RS("emne") & "</a></span></td></tr>"'

som meget godt ligner din

<%
Response.Write "<a href=""FRM_DEBATSVAR.ASP?emneID=" & Request.QueryString("emneID") & """>Besvar</a>"
%>

... men er det godt nok?
Avatar billede steen_hansen Forsker
26. marts 2002 - 22:03 #52
PS: Jeg har inkluderet frm_debatsvar.asp i debatemne.asp
Avatar billede steen_hansen Forsker
26. marts 2002 - 22:10 #53
Jeg kan IKKE få ID'et frem. Når jeg holder musen over linket, kan jeg se dette i statuslinien:

debatemne.asp?emneID=

Når jeg trykker på linket, får jeg flg. fejlmeddelelse:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

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

/debatemne.asp, line 56

Linie 56 ser således ud:

Set RS = Conn.Execute (SQL)
Avatar billede steen_hansen Forsker
26. marts 2002 - 22:23 #54
Denne linie får mig frem til emneID, men jeg opretter et bare et nyt emne, hvis jeg "besvarer" det:

response.write "<td><span class=""tekst11""><a href=""debatemne.asp?emneID=" & RS("emneID") & """>" & RS("emne") & "</a></span></td></tr>"'
Avatar billede steen_hansen Forsker
26. marts 2002 - 23:10 #55
Problemet ligger i post_parent, vil jeg tro.

Nu er jeg gået i selvsving, men jeg ræssonerer bare :o)
Avatar billede bernhof Nybegynder
27. marts 2002 - 12:58 #56
Lige et par småting:

1) frm_debatsvar.asp bliver som du siger inkluderet i debatemne.asp, men bruger du også debatemne.asp til at oprette hoveddebatemner?

2) emneID skal være primary key og af typen autonummer i tabellen "debat".

3) post_parent skal være obligatorisk i tabellen "debat", hvis du ikke allerede har gjort det, og så skal du også sætte dens standard-værdi til at være 0.

4) Hvilket program benytter du til at kode ASP (og HTML for den sags skyld)?

/Mikkel
Avatar billede steen_hansen Forsker
27. marts 2002 - 13:11 #57
Hej Mikkel!

1) Nej, jeg bruger (vil bruge) frm_debat.asp til nyt debatoplæg, og frm_debatsvar.asp til at besvare med. Jeg inkluderer frm_debatsvar.asp på debatemne.asp

2)emneID er også primary key og af typen autonummer i tabellen "debat".

3) post_parent er obligatorisk i tabellen "debat". Når jeg kigger i tabellen "debat", står der "0" (nul) ud for alle indlæg?

4) Jeg benytter mest NotePad. Kan godt ty til FrontPage 2000, hvis jeg skal oprette tabeller o.lign. Jeg er udemærket klar over, at eksempelvis FP kan finde på at generere noget uhensígtsmæssig kodning. Og meget på vagt over for det :o)
Avatar billede steen_hansen Forsker
27. marts 2002 - 13:45 #58
post_parent er obligatorisk? Du mener, at feltet findes i tabellen?
Avatar billede bernhof Nybegynder
27. marts 2002 - 18:45 #59
3) du kan se om feltet er obligatorisk og om feltets standardværdi er 0, ved at gå i design-mode i Access. Så kan du herefter klikke på feltet "post_parent" og kigge i bunden af vinduet, hvor der står div. egenskaber for feltet såsom "Required" ("Obligatorisk" på dansk, mener jeg). Denne egenskab skal stå til "True"/"Sandt", og egenskaben "Default value"/"Standardværdi" skal være 0. :)
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:18 #60
Ok, den var IKKE obligatorisk, men det er den nu.

Jeg prøvede at besvare et emne, men jeg oprettede blot et nyt.

Jeg fik aldrig tjek på det postID/post_parent. Mit gæt er, at jeg mangler en del her?
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:22 #61
Du får det efterfølgende dokument for dokument.

Jeg har taget nogle artikler fra nettet og lagt ned databasen som forsøg. Så har jeg lidt indhold at designe efter.
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:23 #62
extract.asp (bruger jeg til forsiden, der trækkes 500 karakterer ud af emnet - "Læs mere her" etc.):

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT TOP 1 * FROM debat ORDER BY emneID DESC"
Set RS = Conn.Execute( SQL )

while NOT RS.EOF
text = left(RS("kommentar"), 650)
text = replace(text,vbcrLF,"<br>")
    response.write "<tr><td bgcolor=""#5F0000""><span class=""tekst11"">" & "</span><span class=""overskrift17""><a href=""/debat/debatemne.asp?emneID=" & RS("emneID") & """>" & RS("emne") & "</a>" &  "</span></td></tr>"
    response.write "<tr><td bgcolor=""#5F0000""><span class=""tekst11""><b>" & "Forfatter: " & "</b></span>" & "<span class=""tekst11""><i>" &  RS("nick") & "</i></span></td></tr>"
    response.write "<tr><td bgcolor=""#5F0000""><span class=""tekst11""><p align=""justify""><b>" & RS("brodtekst") & "</b></span></td></tr>"
    response.write "<tr><td bgcolor=""#5F0000""><span class=""tekst11""><p align=""justify"">" &  text & " ..." &  "</p></span></td></tr>"
    response.write "<tr><td bgcolor=""#5F0000""><span class=""tekst11""><a href=""/debat/debatemne.asp?emneID=" & RS("emneID") & """>" & "Læs hele artiklen her!" & "</a></span></td></tr>"
    response.write "<tr><td bgcolor=""#5F0000""><span class=""tekst11""><nobr>" & "Artiklen er lagt på " & FormatDateTime(rs("tid"), vbLongDate) & " klokken " & FormatDateTime(rs("tid"), vbShortTime) & "</nobr></span></td></tr>"
RS.MoveNext
text=""
wend

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:25 #63
debat_nytemne.asp bruges, når der oprettes et nyt emne:

<%
if request.form("send_debatemne") >"" then
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

strSQL = "insert into debat (nick, emne, brodtekst, kommentar) values('" & Replace(Request.Form("nick"),"'","''") & "', '" & Replace(Request.Form("emne"),"'","''") & "', '" & Replace(Request.Form("kommentar"),"'","''") & "')"

Conn.Execute(strSQL)

response.redirect ("debatemne.asp")

Conn.Close
Set Conn = nothing
end if
%>
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:27 #64
debat_besvar.asp er en ny formular, hvor man kan besvare et givent emne (er inkluderet i debatemne.asp):

<%
if request.form("send_debatemne") >"" then
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn
                           
strSQL = "insert into debat (nick, kommentar) values('" & Replace(Request.Form("nick"),"'","''") & "', '" & Replace(Request.Form("emne"),"'","''") & "', '" & Replace(Request.Form("kommentar"),"'","''") & "')"
Conn.Execute(strSQL)
response.redirect ("debatemne.asp")

Conn.Close
Set Conn = nothing
end if
%>
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:30 #65
debatemne.asp (del 1) bruges til formularen debat_besvar.asp:

<%
if request.form("send_debatemne") >"" then
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

strSQL = "insert into debat (nick, emne, brodtekst, kommentar, tid) values('" & Replace(Request.Form("nick"),"'","''") & "', '" & Replace(Request.Form("emne"),"'","''") & "', '" & Replace(Request.Form("brodtekst"),"'","''") & "', '" & Replace(Request.Form("kommentar"),"'","''") & "','" & Now() & "')"
Conn.Execute(strSQL)
response.redirect ("default.asp")

Conn.Close
Set Conn = nothing
end if
%>

debatemne.asp (del 2) bruges til at udskrive indholdet af debatemne.asp?emneID=XXX:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

SQL = "SELECT emneID, nick, tid, emne, brodtekst, kommentar FROM debat WHERE emneID = " & Request.QueryString("emneID")
Set RS = Conn.Execute (SQL)

while NOT RS.EOF
tidspunkt = addZ(day(RS("tid"))) & "-" & addZ(month(RS("tid"))) & "-" & year(RS("tid")) & " " & addZ(hour(RS("tid"))) & ":" & addZ(minute(RS("tid")))

    response.write "<tr><td colspan=""2""><span class=""overskrift17""><b>" &  RS("emne") & "</span></td></tr>"
    response.write "<tr><td width=""70%""><span class=""tekst11"">" & "<i>" & "Af: " & "</i>" &  RS("nick") & "</span></td>"
    response.write "<td width=""30%""><span class=""tekst11""><nobr>" & tidspunkt & "</nobr></td></tr>"
    response.write "<tr><td colspan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"
    response.write "<tr><td colspan=""2""><span class=""tekst11""><b><p align=""justify"">" & RS("brodtekst") & "</p></b></span></td>"
    kommentar = replace( RS("kommentar"),vbcrLF,"<br>")
    response.write "<tr><td colspan=""2""><span class=""tekst11""><p align=""justify"">" & kommentar & "</p></span></td></tr>"
RS.MoveNext
text=""
wend
response.write "<tr><td colspan=""2""><img src=""/images/bundlinie.gif"" border=""0""></td></tr>"

RS.Close
Set RS = nothing
Conn.Close
Set Conn = nothing
%>
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:38 #66
include.mdb indeholder tabellen debat, som indeholder flg. felter:

emneID
(autonummerering, primær nøgle)

post_parent
(tal, langt heltal, decimaler = automatisk, Standardværdi = 0, Obligatorisk = Ja, Indekseret = Nej)

nick
(tekst, Feltstørrelse = 50, Obligatorisk = Nej, TilladNullængde = Nej, Indekseret = Nej, UnicodeKomprimering = Ja)

emne
(Notat, Obligatorisk = Nej, TilladNullængde = Nej, UnicodeKomprimering = Ja)

brodtekst
(Notat, Obligatorisk = Nej, TilladNullængde = Nej, UnicodeKomprimering = Ja)

kommentar
(Notat, Obligatorisk = Nej, TilladNullængde = Nej, UnicodeKomprimering = Nej(?))

tid
(Tekst, Feltstørrelse = 50, Obligatorisk = Nej, TilladNullængde = Nej, Indekseret = Ja -dubletter tillades, UnicodeKomprimering = Nej)
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:39 #67
Det er meget at holde rede på, men jeg håber ikke du har mistet modet?

Du skal nok få point :o)
Avatar billede steen_hansen Forsker
27. marts 2002 - 22:48 #68
Hvad jeg ikke rigtig kan se er, hvordan post_parent skal forbindes til emneID.
Avatar billede bernhof Nybegynder
28. marts 2002 - 13:31 #69
Hej Steen :)

hvad er det for nogle artikler du nævner? er ovenstående sider dine? og hvad skal jeg gøre med dem?

inden jeg går ud i en længere forklaring på dit spm. vedr post_parent/emneID, skal jeg lige høre om du ikke forstår hvordan det gøres kodemæssigt, eller om du bare generelt ikke forstår meningen i post_parent og feltets sammenhæng med emneID (eller begge dele? :).

/Mikkel
Avatar billede steen_hansen Forsker
28. marts 2002 - 14:03 #70
Mikkel, bedste ven!

Det er lidt af begge dele:

1. Jeg har en idé om, hvordan det skal kodes. Men en idé er ikke altid nok, så nej, jeg ved ikke hvordan det skal kodes.

2. Jeg forstår godt, at evt. besvarelser på f.eks. emneID=100 skal knyttes til emneID=100. Men så er vi tilbage til ved 1 igen :o/
2A. En bruger opretter et emne
2B. Brugerens emne er tilfældigvis nr. 100 i databasen, og får derfor tildelt emneID 100.
2C. Jeg vil gerne kommentere brugerens emne. For at databasen skal kunne vide hvilket emneID jeg ønsker at knytte min besvarelse til, skal jeg i koden angive hvilket emneID min besvarelse skal knyttes til (lidt søgt forklaring?).

Har jeg forstået det korrekt?
Avatar billede steen_hansen Forsker
28. marts 2002 - 14:14 #71
PS: Ovenstående artikler er hentet forskellige steder fra nettet og lagt på som fyld.

Ja, de ovenstående sider er mine. Jeg håbede du kunne se hvor det går galt. Går galt gør det ikke, for der er ikke nogen forbindelse mellem emne/post_parent overhovedet :o)
Avatar billede steen_hansen Forsker
28. marts 2002 - 14:29 #72
Mikkel, konen havde fødselsdag i går, og vi får gæster i dag, så jeg daffer. Hvis jeg ikke lige svarer ved du hvorfor. Snakes ved i morgen?
Avatar billede bernhof Nybegynder
28. marts 2002 - 14:57 #73
Helt fint! Tillykke til hende! :)
Du skriver bare når du får tid/lyst!

Vedr 2C .. du har vist fat på det! som du siger skal du i koden (og i databasen) angive hvilket emneID en besvarelse skal knyttes til, ved hjælp af post_parent. (bare lige for at skære det ud, men som sagt ser det ud til at du har fat i det).

Det er et spørgsmål om hele tiden at videreføre det emneID du arbejder med. (tag dig ikke af, jeg måske bruger de forkerte filnavne :)
Når du vil besvare et emne henviser du jo til "frm_debatsvar.asp?emneID=100" (altså det videreføres fra lst_debat.asp).
I frm_debatsvar.asp lægger du emneID'et fra QueryString'en ind i et hidden input-felt (som beskrevet i et af mine tidligere svar), og når formen submit'es, videresendes det på denne måde endnu en gang til siden, hvor du indsætter besvarelsen i databasen. I denne SQL-streng sætter du så bare den nye besvarelses post_parent til at være lig det længe videreførte emneID. :)

en lidt kringlet forklaring, og du skal endelig spørge, hvis det stadig forekommer lidt sløret for dig.

jeg vil kigge dine sider igennem når jeg får tid (måske ikke idag). det er jo et større arbejde! :)
Men hvordan kan det være du også har extract.asp med? virker den heller ikke efter hensigten?

Det var alt for nu!
Hav en god dag..
- Mikkel
Avatar billede steen_hansen Forsker
28. marts 2002 - 15:55 #74
Hej Mikkel!

Tak skal du have! Jeg skal nok viderebringe dine lykønskninger :o)

Jeg fik lov til at tage en smøgpause, så jeg skynder mig lige ... :o)

Jeg er noget forvirret nu. Problemet består i at videreføre emneID fra frm_debatsvar.asp, som ser sådan her ud:

<form method="POST" action="debatemne.asp">
<%
response.write "<input type=""hidden"" value=""" & Request.QueryString("emneID") & """ name=""post_parent"">"
%>
    <table border="0" cellpadding="6" cellspacing="0" width="100%" class="tekst11">
        <tr>
            <td colspan="2">
                <span class="overskrift17">Besvar debatemne</span>
            </td>
        </tr>
        <tr>
            <td><input type="hidden" name="emne_ID" style="background-color: #ffff99;" size="35" id="input" value="<%=request("emneID")%>"></td>
        </tr>
        <tr>
            <td>Forfatter:</td>
            <td><input type="text" name="nick" style="background-color: #ffff99;" size="35" id="input"></td>
        </tr>
        <tr>
            <td>Emne:</td>
            <td><input type="text" name="emne" style="background-color: #ffff99;" size="35" id="input"></td>
        </tr>
        <tr>
            <td>E-mail:</td>
            <td><input type="text" name="min_email" style="background-color: #ffff99;" size="35" id="input"></td>
        </tr>
        <tr>
            <td valign="top">Brødtekst:<br>(max. 150<br>karakterer)</td>
            <td><textarea rows="4" name="brodtekst" style="background-color: #ffff99;" cols="67" id="input"></textarea></td>
        </tr>
        <tr>
            <td valign="top">Tekst:</td>
            <td><textarea rows="17" name="kommentar" style="background-color: #ffff99;" cols="67" id="input"></textarea></td>
        </tr>
        <tr>
            <td></td>
            <td>
            <input type="submit" value="Send debatemne" name="send_debatemne" id="input">&nbsp;&nbsp;&nbsp;
            <input type="reset" value="Nulstil" name="nulstil" id="input">
            </td>
        </tr>
    </table>
</form>

debat_extr.asp er kun med, fordi jeg ville vise dig alle dokumenter. Men den virker fint.

vi snakkes ved i morgen. Hygge!
Avatar billede bernhof Nybegynder
28. marts 2002 - 17:52 #75
ok .. lige et par ting:

1) i frm_debatsvar.asp: fjern alle steder, hvor der står id="input". det kan bare skabe problemer senere hen.

2) hvorfor har du to sider (debat_besvar.asp) og del 1 af debatemne.asp (se i dine posteringer ovenfor) til at indsætte besvarelser? hvilken af dem bruger du?

/Mikkel
Avatar billede bernhof Nybegynder
28. marts 2002 - 17:53 #76
lad mig lige omformulere den 2'er :)

2) hvorfor har du både del 1 af debatemne.asp og debat_besvar.asp til at indsætte besvarelser i databasen? hvilken af dem bruger du?
Avatar billede steen_hansen Forsker
29. marts 2002 - 10:48 #77
1) Det håber jeg da ikke? id=input er jo ikke en del af SQL-forespørgsler el.lign. Eller...?

2) Del 1 er en del af frm_debatsvar.asp, som ser sådan her ud:

            <form method="POST" action="debatemne.asp">
'            <%
'              response.write "<input type=""hidden"" value=""" & Request.QueryString("emneID") & """ name=""post_parent"">"
'            %>
                <table border="0" cellpadding="6" cellspacing="0" width="100%" class="tekst11">
                    <tr>
                        <td colspan="2">
                            <span class="overskrift17">Besvar debatemne</span>
                        </td>
                    </tr>
                    <tr>
                        <td><input type="hidden" name="emne_ID" style="background-color: #ffff99;" size="35" id="input" value="<%=request("emneID")%>"></td>
                    </tr>
                    <tr>
                        <td>Forfatter:</td>
                        <td><input type="text" name="nick" style="background-color: #ffff99;" size="35" id="input"></td>
                    </tr>
                    <tr>
                        <td>Emne:</td>
                        <td><input type="text" name="emne" style="background-color: #ffff99;" size="35" id="input"></td>
                    </tr>
                    <tr>
                        <td>E-mail:</td>
                        <td><input type="text" name="min_email" style="background-color: #ffff99;" size="35" id="input"></td>
                    </tr>
                    <tr>
                        <td valign="top">Brødtekst:<br>(max. 150<br>karakterer)</td>
                        <td><textarea rows="4" name="brodtekst" style="background-color: #ffff99;" cols="67" id="input"></textarea></td>
                    </tr>
                    <tr>
                        <td valign="top">Tekst:</td>
                        <td><textarea rows="17" name="kommentar" style="background-color: #ffff99;" cols="67" id="input"></textarea></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="submit" value="Send debatemne" name="send_debatemne" id="input">&nbsp;&nbsp;&nbsp;
                          <input type="reset" value="Nulstil" name="nulstil" id="input">
                        </td>
                    </tr>
                </table>
            </form>

Som sagt, så er der ikke noget af det der er færdigt, og der mangler måske et par ting hist og her. Der mangler ihvertfald noget relation emneID/post_parent imellem :o)
Avatar billede bernhof Nybegynder
29. marts 2002 - 12:36 #78
<< citat start >>

debatemne.asp (del 1) bruges til formularen debat_besvar.asp:

<%
if request.form("send_debatemne") >"" then
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn

strSQL = "insert into debat (nick, emne, brodtekst, kommentar, tid) values('" & Replace(Request.Form("nick"),"'","''") & "', '" & Replace(Request.Form("emne"),"'","''") & "', '" & Replace(Request.Form("brodtekst"),"'","''") & "', '" & Replace(Request.Form("kommentar"),"'","''") & "','" & Now() & "')"
Conn.Execute(strSQL)
response.redirect ("default.asp")

Conn.Close
Set Conn = nothing
end if
%>

debat_besvar.asp er en ny formular, hvor man kan besvare et givent emne (er inkluderet i debatemne.asp):

<%
if request.form("send_debatemne") >"" then
Set Conn = Server.CreateObject("ADODB.Connection")
dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/include.mdb")
Conn.open dbConn
                           
strSQL = "insert into debat (nick, kommentar) values('" & Replace(Request.Form("nick"),"'","''") & "', '" & Replace(Request.Form("emne"),"'","''") & "', '" & Replace(Request.Form("kommentar"),"'","''") & "')"
Conn.Execute(strSQL)
response.redirect ("debatemne.asp")

Conn.Close
Set Conn = nothing
end if
%>

<< citat slut >>

hvad jeg gerne vil vide er, hvorfor har du begge disse sider/koder til at indsætte en besvarelse i databasen ... hvilken af dem bruger du?

vedr id="input":
egenskaben "id" er bare en måde at navngive et element på -- ligesom "name". jeg har aldrig rigtig fundet ud af hvad fordelen ved at bruge "id" istedet for "name" kunne være. men hvad jeg ved er, at det er aldrig klogt at give alle elementerne samme navn/id, da browseren/ASP så ikke kan kende det ene element fra det andet. jeg ved det virker fint, når du sidder og tester det, men det er altid godt at være på den sikre side, hvis der skulle komme software, som altså ikke kan finde ud af det.
Hvis du meget gerne vil benytte "id"-egenskaben, skal du i det mindste ændre denne til det samme som navnet på elementet -- altså fx:

<input type="submit" value="Send debatemne" name="send_debatemne" id="send_debatemne">

/Mikkel
Avatar billede bernhof Nybegynder
29. marts 2002 - 12:37 #79
vedr. de to sider: altså - på begge sider eksekverer du en SQL-sætning, som indsætter i databasen. hvad er grunden til dette?
Avatar billede steen_hansen Forsker
29. marts 2002 - 13:04 #80
Hej Mikkel!

Jeg tager lige id=input først, det er fra mit stylesheet (textbokse, drop-dwns etc.):

#input
{
    BORDER-BOTTOM: black 1px solid;
    BORDER-LEFT: black 1px solid;
    BORDER-RIGHT: black 1px solid;
    BORDER-TOP: black 1px solid;
    FONT-FAMILY: Verdana, Helvetica, Arial;
    FONT-SIZE: 10px
}

Men det er ikke værre, end at jeg ændrer navnet "input" til noget andet, det er hurtigt gjort.

Kan du huske, at jeg fortalte dig, at jeg havde fået hjælp fra en ven? Det kan være, at jeg ikke har fået ryddet ordentligt op. Det vil jeg gå igennem og vende tilbage senere. Du har højst sandsynligt ret :o)
Avatar billede steen_hansen Forsker
29. marts 2002 - 13:25 #81
Jeg har sendt en mail til dig :o)
Avatar billede bernhof Nybegynder
29. marts 2002 - 17:47 #82
okay.. så det er stylesheet du arbejder med. Istedet for at skrive
id="input"
skriver du:
class="input"
og i dit stylesheet ændrer du #input til .input
det burde hjælpe! :)

/Mikkel

P.S. jeg har også sendt dig en mail! :)
Avatar billede steen_hansen Forsker
29. marts 2002 - 17:54 #83
Kamerat! :o)

Jeg laver de ændringer i css hurtigst muligt. Vi snakkes!
Avatar billede bernhof Nybegynder
29. marts 2002 - 18:12 #84
Forresten gør du plads til at man kan indtaste e-mail, men du indsætter ikke denne i databasen..? hvorfor?
Avatar billede steen_hansen Forsker
29. marts 2002 - 18:24 #85
Det er meningen, at der på et (meget) senere tidspunkt skal oprettes et comunity med login. Når man opretter sig som bruger, skal disse data opgives.

Som sagt, så er det kun lidt leg endnu. Der er ikke meget af det, der passer. Mit mål lige her og nu, er at få det til at fungere :o)
Avatar billede bernhof Nybegynder
29. marts 2002 - 19:08 #86
ok .. fint nok!
du får nok en mail senere! :)

/Mikkel
Avatar billede steen_hansen Forsker
29. marts 2002 - 21:53 #87
Hej Mikkel!

Prøv at tage et emne fra lst_debat.asp og se hvad der sker med debatemne.asp :o(
Avatar billede steen_hansen Forsker
30. marts 2002 - 15:11 #88
Hej Mikkel!

Kan du ikke lige svare på http://www.eksperten.dk/spm/191713?

Foreløbigt 1000 tak :o)
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