Avatar billede jesperwerge Nybegynder
04. januar 2005 - 22:54 Der er 8 kommentarer og
1 løsning

Indsætte 2-3 records på samme tid

Hej

Jeg har en almindelig formular hvor der kan bestilles nogle pladser på nogle bestemte datoer, der kan max vælges 3 forskellige datoer, der er 6 inputs felter:

navn
e-mail
telefon
kommentar
dato (dropdown hvor der vælges en dato) - vises 3 gange
antal (dropdown, hvor der kan vælges mellem 1,2,3 antal pladser) - vises 3 gange

Mit mål er, ud fra hvormange datoer som man vælger skal der laves en ny record pr. dato, men hvor navn, telefon, e-mail og kommentar er den samme.

Eks. jeg vælger 2 datoer ud af 3 mulige så skal der i databasen indsættes 2 records hvor navn, telefon, e-mail og kommentar er samme værdi.

Min kode nu sætter 1 record in hvor de 1-3 forskellige datoer og antal pladser sættes ind i hvert sit felt, men det giver mig nogle problemer i andre sammenhænge.

Håber I har nogle ideer

mvh

Jesper Werge
Avatar billede mortvader Nybegynder
04. januar 2005 - 23:40 #1
for x=0 to antalmuligedatoer
  if dato[x]=true then
    conn.execute "insert into blahblah osv"
  end if
next

f.eks. noget i den stil. Ellers, lad os se noget kode vi kan strikke videre på ;)
Avatar billede fennec Nybegynder
05. januar 2005 - 08:32 #2
...ellers må du have nogle variabler med datoerne i.
dato1 = request.form("dato1")
dato2 = request.form("dato2")
dato3 = request.form("dato3")

if dato1 <> "" then
  conn.execute("insert into...")
end if
if dato2 <> "" then
  conn.execute("insert into...")
end if
if dato3 <> "" then
  conn.execute("insert into...")
end if

Men som mortvader også skriver, skal vi nok se noget kode, for at vide hvordan det bedst laves til dig.
Avatar billede jesperwerge Nybegynder
05. januar 2005 - 16:25 #3
Hej mortvader & fennec,

her er link til selve fomularen, som også sender en e-mail til den e-mail adresse som bliver tastet ind af brugeren. http://www.horsholmloppemarked.dk/bestilling.asp
Avatar billede jesperwerge Nybegynder
05. januar 2005 - 16:26 #4
koden kommer her, den er lidt lang:

<%SetLocale(1030)%>
<%
Set JMail = Server.CreateObject("JMail.SMTPMail")
Response.Expires = 0

'Her bliver variabler til inputene fra formen defineret
Dim strNavn, strEmail, strTlf, strDato0, strStand0, strDato1, strStand1, strDato2, strStand2, ToDayDate, strKommentar

'Formularens felter tjekkes for data og hentes
If Request.ServerVariables("CONTENT_LENGTH") <> 0 Then
    ' Følgende linier henter dataen fra form-mailen.
  strNavn = Trim(Request.Form("txtNavn"))
  strEmail = Trim(Request.Form("txtEmail"))
  strTlf = Trim(Request.Form("txtTlf"))
  strDato0 = Trim(Request.Form("txtDato0"))
  strStand0 = Trim(Request.Form("txtStand0"))
  strDato1 = Trim(Request.Form("txtDato1"))
  strStand1 = Trim(Request.Form("txtStand1"))
  strDato2 = Trim(Request.Form("txtDato2"))
  strStand2 = Trim(Request.Form("txtStand2"))
  strToDayDate = Trim(Request.Form("txtToDayDate"))
  strKommentar = Trim(Request.Form("txtKommentar"))
 
 
  'Konfiguration af server:
  JMail.ServerAddress = "mail.horsholmloppemarked.dk"
  JMail.sender = "info@horsholmloppemarked.dk"
  JMail.subject = "Hørsholm loppemarked"
  JMail.AddRecipient strEmail
  JMail.AddRecipientBCC "werge@mail.dk"   
 
    'selve email indholdet:
  JMAIL.BODY = "& VbCrLF & VbCrLF"
  JMail.Body = "Vi har registreret disse informationer fra din bestilling: " & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & "Navn: " & strNavn & VbCrLf
  JMail.Body = JMail.Body & "Email: " & strEmail & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & "Telefon nr.: " & strTlf & VbCrLf
  JMail.Body = JMail.Body & "Dato for bestilling: " & strToDayDate & VbCrLf & VbCrLf
  JMail.Body = JMail.Body & "Dato: " & strDato0 & " - Antal stader: " & strStand0 & VbCrLf
  JMail.Body = JMail.Body & "Dato: " & strDato1 & " - Antal stader: " & strStand1 & VbCrLf
  JMail.Body = JMail.Body & "Dato: " & strDato2 & " - Antal stader: " & strStand2 & VbCrLf
  JMAIL.Body = JMAIL.Body & "Kommentar: " & VbCrLf & strKommentar & VbCrLf & VbCrLf
  JMAIL.Body = JMAIL.Body & "Tak for din bestilling, vi håber du få en rigtig dejlig dag som kræmmer. " & VbCrLf & VbCrLf
  JMAIL.Body = JMAIL.Body & "Du skal betale din stade hurtigst muligt, det er den eneste måde du kan være sikker på, at staden er din. Umiddelbart efter at vi har registreret din betaling, modtager du en e-mail med en oversigtsplan og stadenummer." & VbCrLf & VbCrLf
  JMAIL.Body = JMAIL.Body & "Eksempel på betaling: " & VbCrLf& VbCrLf
  JMAIL.Body = JMAIL.Body & "1. Betal evt. via netbank til konto: 2269 3483 137477 - kr. 300 pr. stade. " & VbCrLf& VbCrLf
  JMAIL.Body = JMAIL.Body & "2. Angiv dato for din deltagelse samt telefonnr. (eks. 02/05/04 - 28106110) " & VbCrLf& VbCrLf
  JMAIL.Body = JMAIL.Body & "3. Du modtager kvittering med stadenr. når vi har registreret din betaling." & VbCrLf& VbCrLf
  JMAIL.Body = JMAIL.Body & "4. Bestiller du flere stader af gangen, betales den første nu, og de øvrige på samme måde som ovenfor nævnt, senest 14 dage før loppedagen. " & VbCrLf& VbCrLf
  JMAIL.Body = JMAIL.Body & "Med de venligste hilsner" & VbCrLf& VbCrLf
  JMAIL.Body = JMAIL.Body & "Hørsholm Loppemarked."
 
  'prioritet på email, 1 = højeste (Haster / Vigtigt), 3 = normal, 5 = lavest
  JMail.Priority = 3

  JMail.Execute
 
'Indsætte alle felter i databasen
  Set oDB = Server.CreateObject("ADODB.connection")
      oDB.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/lop.mdb")
 
  strSQL="INSERT INTO [Main] (Navn,Email,Tlf,Dato0,Stand0,Dato1,Stand1,Dato2,Stand2,ToDayDate,Kommentar) VALUES ('"
  strSQL=strSQL & strNavn &"','"
  strSQL=strSQL & strEmail &"','"
  strSQL=strSQL & strTlf &"','"
  strSQL=strSQL & strDato0 &"','"
  strSQL=strSQL & strStand0 &"','"
  strSQL=strSQL & strDato1 &"','"
  strSQL=strSQL & strStand1 &"','"
  strSQL=strSQL & strDato2 &"','"
  strSQL=strSQL & strStand2 &"','"
  strSQL=strSQL & strToDayDate &"','"
  strSQL=strSQL & strKommentar &"')"
 
      oDB.Execute(strSQL)
      oDB.Close
      set oDB = Nothing
%>
<HTML>
<HEAD>
<TITLE>Stade bestilling Hørsholm Loppemarked</TITLE>
<style>
<!--
div.Section1
    {page:Section1;}
-->
</style>
</HEAD>
<BODY bgcolor="#E0E0E0">
<TABLE WIDTH=400 HEIGHT=450 BORDER=0 ALIGN="CENTER" CELLPADDING=0 CELLSPACING=0 RULES="NONE" FRAME="VOID">
    <TR>
      <TD WIDTH=100% HEIGHT=15 ALIGN="CENTER" VALIGN="TOP">
            <CENTER><font face="arial" size="2">
                    ...Tak for din bestilling...
                    <br>&nbsp;</font><div class="Section1">
            <p class="MsoNormal"><b><font face="Arial">...</font></b><font face="Arial"><b>for
            at være sikker på at du også får staden skal du betale den hurtigst
            muligt. <br>
            <br>
            Der er kun et begrænset antal stader til salg. Staderne tildeles i
            den rækkefølge de betales. <br>
            <br>
            Anvend enten Netbank eller gå direkte i en afdeling af Nordea. <br>
            <br>
            Vi har lig nu sendt dig en mail med de nødvendige oplysninger til
            den adresse du skrev på bestillingen.</b></font></div>
            <p><font face="arial" size="2">
                    <br><br>
                    <a href="/default.asp">Tilbage til Hovedsiden klik her</a></font>
          </p>
          </CENTER>
      </TD>
    </TR>
</TABLE>

</BODY>
</HTML>

<%
Else
%>
<HTML>
<HEAD>
<TITLE>Hørsholm Loppemarked - Bestilling</TITLE>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
function validate(form1) {

    //Navn-feltet
    if (form1.txtNavn.value == "") {
    alert("Husk at angive dit navn!");
    document.form1.txtNavn.focus();
    return false;
    }
   
            //Telefonnummer-feltet
              if (form1.txtTlf.value == "") {
            alert("Husk at angive et telefon nummer!");
            document.form1.txtTlf.focus();
            return false;
            }
            //e-mail-feltet
            if (document.form1.txtemail.value.indexOf("@")==-1 || document.form1.txtemail.value.indexOf(".")==-1) {
            alert("Du har ikke udfyldt e-mail feltet korrekt!");
            document.form1.txtemail.focus();
            return false;
            }

return true;
}

//Cursoren står i første felt (txtNavn)
function start() {
document.form1.txtNavn.focus();
return false;
}
</SCRIPT>
</HEAD>
<BODY bgcolor="#E0E0E0">
<FORM NAME="form1" ACTION="bestilling.asp" METHOD=POST ONSUBMIT="return validate(this)">
<div align="center">
    <table border="0" style="border-collapse: collapse" width="903" id="table1" cellpadding="0" cellspacing="2" height="600">
        <tr>
            <td colspan="3" bordercolor="#00A000" style="border: 2px solid #00A000; padding-left: 0; padding-right: 0; padding-top: 1px; padding-bottom: 1px" width="903" height="124">
            <a href="default2.asp">
            <img border="0" src="images/Header.jpg" width="903" height="122"></a></td>
        </tr>
        <tr>
            <td rowspan="12" width="207" style="border: 2px solid #00A000; padding-left: 6px; padding-right: 0; padding-top: 1px; padding-bottom: 1px" align="left" valign="top">
            <!-- #include file="nav.asp" --></td>
            <td width="3"></td>
            <td rowspan="10" width="690" style="border: 2px solid #00A000; padding-left: 6px" align="left" valign="top" height="468">
            &nbsp;<table border="0" cellpadding="0" style="border-collapse: collapse" width="690" id="table2">
                <tr>
                    <td width="114"></td>
                    <td width="575" colspan="5"><font face="arial" size="1"><%=FormatDateTime(Date, 1)%></font></td>
                </tr>
                <tr>
                    <td width="114"><font face="Arial" size="2">Navn:</font></td>
                    <td width="575" colspan="5"><input type="text" name="txtNavn" size=52 MAXLENGTH=50></td>
                </tr>
                <tr>
                    <td width="114"><font face="Arial" size="2">Telefon nr.:</font></td>
                    <td width="575" colspan="5">
                    <input type="text" name="txtTlf" size=9 MAXLENGTH=9><font face="Arial" size="2">(Eks.
                    28106110)</font></td>
                </tr>
                <tr>
                    <td width="114"><font face="Arial" size="2">E-mail:</font></td>
                    <td width="575" colspan="5"><input type="text" name="txtemail" size=52 MAXLENGTH=50></td>
                </tr>
                <tr>
                    <td width="114" valign="top"><font face="Arial" size="2">Kommentar:</font></td>
                    <td width="575" colspan="5">
                    <textarea rows="5" name="txtkommentar" cols="40" MAXLENGTH=310></textarea><br>
                    <input type="hidden" name="txtToDayDate" value="<%=FormatDateTime(Date, 2)%>" size=52 MAXLENGTH=50></td>
                </tr>
                <tr>
                    <td width="114" valign="top">&nbsp;</td>
                    <td width="575" colspan="5">
                    &nbsp;</td>
                </tr>
                <tr>
                    <td width="114"><font face="Arial" size="2">Vælg datoer:</font></td>
                    <td width="114"><font face="Arial" size="2">
                   
<%
Set oDB = Server.CreateObject("ADODB.connection")
  oDB.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/lop.mdb")
    Set oRS = oDB.execute("SELECT AutoID,DatoSoendage,Status FROM [Datoer] WHERE Status=1")
%>
<select name="txtDato0">
    <option value="-">Vælg dato</option>
    <% Do While not oRS.EOF %>
    <option value="<%=oRS("DatoSoendage")%>"> <%=oRS("DatoSoendage")%></option>
    <% oRS.MoveNext
    Loop
    oRS.Close
    set oRS = Nothing
    %>
</select>
</font></td>
                    <td width="115">
<%
Set oDB = Server.CreateObject("ADODB.connection")
  oDB.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/lop.mdb")
    Set oRS = oDB.execute("SELECT AutoID,DatoSoendage,Status FROM [Datoer] WHERE Status=1")
%>
<select name="txtDato1">
    <option value="-">Vælg dato</option>
    <%     Do While not oRS.EOF %>
    <option value="<%=oRS("DatoSoendage")%>"> <%=oRS("DatoSoendage")%></option>
    <% oRS.MoveNext
    Loop
    oRS.Close
    set oRS = Nothing
    %>
</select>
</td>
                    <td width="115">
<%
Set oDB = Server.CreateObject("ADODB.connection")
  oDB.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/lop.mdb")
    Set oRS = oDB.execute("SELECT AutoID,DatoSoendage,Status FROM [Datoer] WHERE Status=1")
%>
<select name="txtDato2">
    <option value="-">Vælg dato</option>
    <%     Do While not oRS.EOF %>
    <option value="<%=oRS("DatoSoendage")%>"> <%=oRS("DatoSoendage")%></option>
    <% oRS.MoveNext
    Loop
    oRS.Close
    set oRS = Nothing
    %>
</select>
</td>
                    <td width="115">
<%
Set oDB = Server.CreateObject("ADODB.connection")
  oDB.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/lop.mdb")
    Set oRS = oDB.execute("SELECT AutoID,DatoSoendage,Status FROM [Datoer] WHERE Status=1")
%>&nbsp;
</td>
                    <td width="115">
<%
Set oDB = Server.CreateObject("ADODB.connection")
  oDB.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/lop.mdb")
    Set oRS = oDB.execute("SELECT AutoID,DatoSoendage,Status FROM [Datoer] WHERE Status=1")
%>&nbsp;
</td>
                </tr>
                <tr>
                    <td width="114">&nbsp;</td>
                    <td width="114">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                </tr>
                <tr>
                    <td width="114"><font face="Arial" size="2">Vælg antal
                    stader</font></td>
                    <td width="114"><select name="txtStand0">
                                        <option value="1">1</option>
                                        <option value="2">2</option>
                                        <option value="3">3</option>
                                    </select></td>
                    <td width="115"><select name="txtStand1">
                                        <option value="0">Ingen</option>
                                        <option value="1">1</option>
                                        <option value="2">2</option>
                                        <option value="3">3</option>
                                    </select></td>
                    <td width="115"><select name="txtStand2">
                                        <option value="0">Ingen</option>
                                        <option value="1">1</option>
                                        <option value="2">2</option>
                                        <option value="3">3</option>
                                    </select></td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                </tr>
                <tr>
                    <td width="114">&nbsp;</td>
                    <td width="114">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                </tr>
                <tr>
                    <td width="114">&nbsp;</td>
                    <td width="114">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                    <td width="115">&nbsp;</td>
                </tr>
            </table>
           
                <p>
                <input type="submit" name="submit" value="Bestil stade">
                <input type="reset" value="Nulstil" name="B2"></p>
            </td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
        <tr>
            <td width="3"></td>
            <td rowspan="2" width="690" style="border: 2px solid #00A000; padding-left: 6px" align="right" valign="bottom">
            <p align="right"><a href="http://www.werges.dk" target="_blank"><img border="0" src="images/DesignBy.jpg" width="100" height="20"></a></td>
        </tr>
        <tr>
            <td width="3"></td>
        </tr>
    </table>
</div>
</body>
</form>
</html>
<% End If %>
Avatar billede jesperwerge Nybegynder
05. januar 2005 - 16:28 #5
målet er at dato0, stand0, dato1, stand1, dato2, stand2 - skal blive til et felt "Dato", "standnr" og skrives så mange gange ind i databasen som der er valgt datoer, med det dertilhørende antal bestilte pladser.

håber det hjælper lidt.
Avatar billede jesperwerge Nybegynder
05. januar 2005 - 16:33 #6
Siden bestilling er delt op i to sider, hvis man kan kalde det sådan, først er der em email udsendelse, men de informationer som brugeren har indtastet, som er det første del af koden, så er der indsættelsen i databasen og validering af felt indholdet, og slut er selve formularen og designet. - der er lidt dokumentation i koden, desværre ikke helt så meget, jeg har ikke nået det endnu :o)
Avatar billede fennec Nybegynder
06. januar 2005 - 16:25 #7
Jeg tror det er noget i denne stil. Du skal udskifte din indsættelse med dette, så skulle der gerne blive oprettet flere rækker, alle med data i Dato0 og Stand0:

if strDato0 <> "" then
  strSQL="INSERT INTO [Main] (Navn,Email,Tlf,Dato0,Stand0,ToDayDate,Kommentar) VALUES ('"
  strSQL=strSQL & strNavn &"','"
  strSQL=strSQL & strEmail &"','"
  strSQL=strSQL & strTlf &"','"
  strSQL=strSQL & strDato0 &"','"
  strSQL=strSQL & strStand0 &"','"
  strSQL=strSQL & strToDayDate &"','"
  strSQL=strSQL & strKommentar &"')"
  oDB.Execute(strSQL)
end if
if strDato1 <> "" then
  strSQL="INSERT INTO [Main] (Navn,Email,Tlf,Dato0,Stand0,ToDayDate,Kommentar) VALUES ('"
  strSQL=strSQL & strNavn &"','"
  strSQL=strSQL & strEmail &"','"
  strSQL=strSQL & strTlf &"','"
  strSQL=strSQL & strDato1 &"','"
  strSQL=strSQL & strStand1 &"','"
  strSQL=strSQL & strToDayDate &"','"
  strSQL=strSQL & strKommentar &"')"
  oDB.Execute(strSQL)
end if
if strDato2 <> "" then
  strSQL="INSERT INTO [Main] (Navn,Email,Tlf,Dato0,Stand0,ToDayDate,Kommentar) VALUES ('"
  strSQL=strSQL & strNavn &"','"
  strSQL=strSQL & strEmail &"','"
  strSQL=strSQL & strTlf &"','"
  strSQL=strSQL & strDato2 &"','"
  strSQL=strSQL & strStand2 &"','"
  strSQL=strSQL & strToDayDate &"','"
  strSQL=strSQL & strKommentar &"')"
  oDB.Execute(strSQL)
end if
Avatar billede jesperwerge Nybegynder
06. januar 2005 - 22:03 #8
Hej Fennec

Du er genial, det virker, det eneste jeg har har ændret er dette:
if strDato0 <> "-" then
ellers skrev den heletiden 3 records ind selvom der kun var udfyldt en eller to.

tusind tak for hjælpen, det er rart når det er enkelt, hehe :)

smider du lige et svar så får du dine points
mvh
Jesper
Avatar billede fennec Nybegynder
07. januar 2005 - 08:40 #9
.o) <-- One Eyed Jack
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