19. maj 2006 - 21:56Der er
63 kommentarer og 1 løsning
hjælp til tilmeldings formular
hej ..
klik på linket under tilmelding så kan man se hvilket hold man skal tilmelde sig. felterne i table "tilmeling" hedder det samme som jeg har skrevet på siden fornavn osv..
hvordan gør jeg det smartest sådan at de tilmelder sig får tilsendt en mail med info for hvilke hold de har valgt osv.
På den side hvor du har en tilmeldings form som så skal laves som en form :)
Når du gememr i data databasen kan du i samme fil sende en mail og når du bruger ASPmail kan du se et eks på hvordan den virker her: http://www.html.dk/scripts/asp/00003/
strSQL = "Insert into tilmelding (efternavn, efternavn) values('" & Request.Form("efternavn") & "','" & Request.Form("efternavn") & "' )" conn.execute(strSQL) Alert = "Holdet er nu oprettet " end if %>
Så kan du hente oplysninger ud fra ID på holdet lige som du henter de oplysninger ud på tilmendingssiden hvor formen er (http://www.slsk.dk/tilmelding/tilmelding.asp?id=9). Du henter ID'et med Request.Form("id")
id = Request.Form("id") strSQL = "select * from hold where id = " & id
Hvis du vil hvade det på samme side så bør du flytte rundt på det så det kode som gemmer ligger enten i topppen eller i bunden af koden og ikke midt i det hele.
Så du skal hvade flytte dette:
<% if request.form("send") <> "" then Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={MySQL};SERVER=m" &_ "DATABASE=;UID=slsk;PWD=;" Conn.Open DSN
strSQL = "Insert into tilmelding (efternavn, adresse, postnr, fby, telefon, email, fornavn, dato ) values('" & Request.Form("efternavn") & "','" & Request.Form("adresse") & "','" & Request.Form("postnr") & "','" & Request.Form("fby") & "','" & Request.Form("telefon") & "','" & Request.Form("email") & "','" & Request.Form("fornavn") & "','" & Request.Form("dato") & "' )" conn.execute(strSQL) Alert = "Holdet er nu oprettet " end if %>
og det skal rettes til eks:
<% if request.form("send") <> "" then Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={MySQL};SERVER=m" &_ "DATABASE=;UID=slsk;PWD=;" Conn.Open DSN
id = Request.Form("id") SQL = "select * from hold where id = " & id set rs = Conn.Execute(SQL) holdnavn = rs("holdnavn")
SQL = "update hold set tilmeldte = tilmeldte + 1 where id = " & id Conn.Execute(SQL)
'Kode som sender mailen her:
if Request.Form("adresse") <> "" then Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
' Her sættes afsender navn og e-mail adresse Mailer.FromName = "Afsenders navn" Mailer.FromAddress= "afsender@domain.dk"
' Afsenders mailserver RETTES TIL Mailer.RemoteHost = "mail.domain.dk"
' Her sættes modtager navn og e-mail adresse Mailer.AddRecipient "" & Request.Form("efternavn"), Request.Form("adresse")
' Her sættes overskriften på mailen Mailer.Subject = "Du er tilmeldt hold " & holdnavn
' Her sættes selve teksten til mailen Mailer.BodyText = "Hej med dig" & VbCrLf & "du er tilmeldt hold " & holdnavn
' Send e-mail og skriv status if Mailer.SendMail then Response.Write "Mailen er afsendt..." else Response.Write "Der skete en fejl: " & Mailer.Response end if
' Fjern objekt igen Set Mailer = Nothing end if
response.write "Du er tilmeldt holdet " & holdnavn & " og du modtager en email hvis du har angivet en email adresse."
end if %>
Du bør havde en holdid kolonne i din tilmelding tabel eller ved du ikke hvilket hold en person er meldt til.
SQL = "update hold set tilmeldte = tilmeldte + 1 where id = " & id Conn.Execute(SQL)
'Kode som sender mailen her:
if Request.Form("adresse") <> "" then Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
' Her sættes afsender navn og e-mail adresse Mailer.FromName = "Afsenders navn" Mailer.FromAddress= "webmaster@slsk.dk"
' Afsenders mailserver RETTES TIL Mailer.RemoteHost = "mail.slsk.dk"
' Her sættes modtager navn og e-mail adresse Mailer.AddRecipient "" & Request.Form("efternavn"), Request.Form("adresse")
' Her sættes overskriften på mailen Mailer.Subject = "Du er tilmeldt hold " & holdnavn
' Her sættes selve teksten til mailen Mailer.BodyText = "Hej med dig" & VbCrLf & "du er tilmeldt hold " & holdnavn
' Send e-mail og skriv status if Mailer.SendMail then Response.Write "Mailen er afsendt..." else Response.Write "Der skete en fejl: " & Mailer.Response end if
' Fjern objekt igen Set Mailer = Nothing end if
response.write "Du er tilmeldt holdet " & holdnavn & " og du modtager en email hvis du har angivet en email adresse."
SQL = "update hold set tilmeldte = tilmeldte + 1 where id = " & id Conn.Execute(SQL)
det er lige det jeg skal bruge jeg skal vide hvormange tilmelder sig holdet der må f.eks kun være 18 og når det er nået skal man ikke kunne tilmelde sig mere.. jeg har et felt i tabellen "hold" der hedder "tilmeldte" er det ikke den der skal opdateres
Det er fordi det kode som gemmer i databasen ligger midt i det hele. Du skal prøve at flytte lidt rundt på det sådan her sådan koden som gemmer og sender mail ligger øverst og stoppe når mailen er sendt.
<% if request.form("send") <> "" then Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={MySQL};SERVER=.dk;" &_ "DATABASE=;UID=slsk;PWD=;" Conn.Open DSN
id = Request.Form("id") SQL = "select * from hold where id = " & id set rs = Conn.Execute(SQL) holdnavn = rs("holdnavn")
SQL = "update hold set tilmeldte = tilmeldte + 1 where id = " & id Conn.Execute(SQL)
'Kode som sender mailen her:
if Request.Form("adresse") <> "" then Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
' Her sættes afsender navn og e-mail adresse Mailer.FromName = "Afsenders navn" Mailer.FromAddress= "webmaster@slsk.dk"
' Afsenders mailserver RETTES TIL Mailer.RemoteHost = "mail.slsk.dk"
' Her sættes modtager navn og e-mail adresse Mailer.AddRecipient "" & Request.Form("efternavn"), Request.Form("adresse")
' Her sættes overskriften på mailen Mailer.Subject = "Du er tilmeldt hold " & holdnavn
' Her sættes selve teksten til mailen Mailer.BodyText = "Hej med dig" & VbCrLf & "du er tilmeldt hold " & holdnavn
' Send e-mail og skriv status if Mailer.SendMail then Response.Write "Mailen er afsendt..." else Response.Write "Der skete en fejl: " & Mailer.Response end if
' Fjern objekt igen Set Mailer = Nothing end if
response.write "Du er tilmeldt holdet " & holdnavn & " og du modtager en email hvis du har angivet en email adresse."
SQL = "update hold set tilmeldte = tilmeldte + 1 where id = " & id Conn.Execute(SQL)
'Kode som sender mailen her:
if Request.Form("adresse") <> "" then Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
' Her sættes afsender navn og e-mail adresse Mailer.FromName = "Afsenders navn" Mailer.FromAddress= "webmaster@slsk.dk"
' Afsenders mailserver RETTES TIL Mailer.RemoteHost = "mail.slsk.dk"
' Her sættes modtager navn og e-mail adresse Mailer.AddRecipient "" & Request.Form("efternavn"), Request.Form("adresse")
' Her sættes overskriften på mailen Mailer.Subject = "Du er tilmeldt hold " & holdnavn
' Her sættes selve teksten til mailen Mailer.BodyText = "Hej med dig" & VbCrLf & "du er tilmeldt hold " & holdnavn
' Send e-mail og skriv status if Mailer.SendMail then Response.Write "Mailen er afsendt..." else Response.Write "Der skete en fejl: " & Mailer.Response end if
' Fjern objekt igen Set Mailer = Nothing end if
response.write "Du er tilmeldt holdet " & holdnavn & " og du modtager en email hvis du har angivet en email adresse."
response.End 'stopper koden her end if
'Viser formen
Set Conn = Server.CreateObject("ADODB.Connection") "DATABASE= Conn.Open DSN
strSQL = "Select * From hold Where Id = " & Request.Querystring("id") Set rs = Conn.Execute(strSQL)
Der skete en fejl: At least one Recipient, CC or BCC must be enteredDu er tilmeldt holdet peter og du modtager en email hvis du har angivet en email adresse.
Ja det være nok ikke alt for længe inden jeg skal i seng.
Det man antalet kan du lave flere stedet du kan tjekke inden tilmeldings formen vises om der er max antal tilmeldte, du kan også gøre det når du vil oprette en tilmelding.
I priuncippet skal du for det valgte hold tjekke på disse to kolonner:
rs("holdantal") og rs("tilmeldte")
eks:
if rs("holdantal") = rs("tilmeldte") then Response.Write "Der kan ikke tilmeldes flere til dette hold" 'evt. stop koden eller sidkre man får ikke indæstter i databasen ' Response.End else 'Indsæt i databasen, eller vis formen end if
når den ramme max skal linket til tilmelding laves om til Response.Write "Der kan ikke tilmeldes flere til dette hold" her er koden til siden:
holdid = Request.Querystring("id")
SQL = "select hold.*, holdnavn.holdnavn from hold inner join holdnavn on hold.holdnavn = holdnavn.holdnavn where holdnavn.id = " & holdid Set rs = Conn.Execute(SQL)
Ja der går nok også en ½-1 time endnu inden sengen kalder :)
men prøv at rette:
' lav et link til person.asp med Id-værdien i URL strLink = "<b><a href='tilmelding.asp?id=" & rs("Id") & "' target='_top'>" & strNavn & "</a>"
Response.Write strLink
Til dette:
' lav et link til person.asp med Id-værdien i URL if rs("tilmeldte") >= rs("holdantal") then strLink = "Der kan ikke tilmeldes flere til dette hold" else strLink = "<b><a href='tilmelding.asp?id=" & rs("Id") & "' target='_top'>" & strNavn & "</a>" end if
forfanden det var lige meget,,.. jeg har en holdid i "tilmelding" tabellen men jeg kan se den ikke oprettet et holdid i tabellen tilmelding når jeg laver en tilmelding ?
sidste iden lukke tid.. altså det er feltet "holdnr" vi skalhave med over i "tilmelding" tabellen her er koden og feltet i tilmelding hedder nu også holdnr.
her er koden:
id = Request.Form("id") SQL = "select * from hold where id = " & id set rs = Conn.Execute(SQL) holdnavn = rs("holdnavn")
SQL = "update hold set tilmeldte = tilmeldte + 1 where id = " & id Conn.Execute(SQL)
'Kode som sender mailen her:
if Request.Form("adresse") <> "" then Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
' Her sættes afsender navn og e-mail adresse Mailer.FromName = "Afsenders navn" Mailer.FromAddress= "webmaster@slsk.dk"
' Afsenders mailserver RETTES TIL Mailer.RemoteHost = "mail.slsk.dk"
' Her sættes modtager navn og e-mail adresse Mailer.AddRecipient "" & Request.Form("efternavn"), Request.Form("email")
' Her sættes overskriften på mailen Mailer.Subject = "Du er tilmeldt hold " & holdnavn
' Her sættes selve teksten til mailen Mailer.BodyText = "Hej med dig" & VbCrLf & "du er tilmeldt hold " & holdnavn
' Send e-mail og skriv status if Mailer.SendMail then Response.Write "Mailen er afsendt..." else Response.Write "Der skete en fejl: " & Mailer.Response end if
' Fjern objekt igen Set Mailer = Nothing end if
response.write "Du er tilmeldt holdet " & holdnavn & " og du modtager en email hvis du har angivet en email adresse."
response.End 'stopper koden her end if
'Viser formen Set Conn = Server. Conn.Open DSN
strSQL = "Select * From hold Where Id = " & Request.Querystring("id") Set rs = Conn.Execute(strSQL)
ja den tæller ikke rigtig.. men den kommer vi tilbage til om et par dage :-)
jeg vil gerne se hvem der har tlmeldt sig holdet men når jeg skal liste alle dem frem fra tilmelding tabellen der har tilmeldt sig hold 101 får jeg blank side... er der noget galt med koden
for pkker jeg er lidt træt hvor sætter jeg den ind ?
SQL = "select hold.*, holdnavn.holdnavn from hold inner join holdnavn on hold.holdnavn = holdnavn.holdnavn where holdnavn.id = " & holdid Set rs = Conn.Execute(SQL)
SQL = "select hold.*, holdnavn.holdnavn from hold inner join holdnavn on hold.holdnavn = holdnavn.holdnavn where holdnavn.id = " & holdid Set rs = Conn.Execute(SQL)
SQL = "select hold.*, holdnavn.holdnavn from hold inner join holdnavn on hold.holdnavn = holdnavn.holdnavn where holdnavn.id = " & holdid Set rs = Conn.Execute(SQL)
Holdnummer Dag Tider Instruktør antal tilmelte tilmeld dig holdet se tilmeldte til holdet ADODB.Connection error '800a0bb9' Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
perfekt... så siger jeg super mange tak for i aften, det er dog for vildt mange tak... sov godt.. så kan det være vi mødes igen når vi lige skal have den på plads med at der ikke kan tilmeldes flere når man rammer max.
Det er er lavet 19/05-2006 23:44:22 du skal bare rette ås den ikke tager rs("tilmeldte") men rsCount("antalTilmeldte")
' lav et link til person.asp med Id-værdien i URL if rsCount("antalTilmeldte") >= rs("holdantal") then strLink = "Der kan ikke tilmeldes flere til dette hold" else strLink = "<b><a href='tilmelding.asp?id=" & rs("Id") & "' target='_top'>" & strNavn & "</a>" end if
SQL = "select hold.*, holdnavn.holdnavn from hold inner join holdnavn on hold.holdnavn = holdnavn.holdnavn where hold.id = " & holdid Set rs = Conn.Execute(SQL)
%> <% Response.write "<table>" Response.write "<tr><td bgcolor='#FFCD32'><b>Holdnummer</td><td bgcolor='#FFCD32'><b>Dag</td><td bgcolor='#FFCD32'><b>Tider</td><td bgcolor='#FFCD32'><b>Instruktør</td><td bgcolor='#FFCD32'><b>antal</td><td bgcolor='#FFCD32'><b>tilmelte</td><td bgcolor='#FFCD32'><b>tilmeld dig holdet</td><td bgcolor='#FFCD32'><b>se tilmeldte til holdet</td><td> <tr>" Do strSQL = "select count(*) as antalTilmeldte from tilmelding where holdnr = " & rs("holdnr") Set rsCount = Conn.Execute(strSQL)
strNavn = rs("holdnr") if rsCount("antalTilmeldte") >= rs("holdantal") then strLink = "Der kan ikke tilmeldes flere til dette hold" else strLink = "<b><a href='tilmelding.asp?id=" & rs("Id") & "' target='_top'>" & strNavn & "</a>" end if
Response.Write strLink
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.