Avatar billede annettef Nybegynder
16. september 2004 - 12:17 Der er 1 løsning

Føre session med videre efter indtastning i form.

Hej

Jeg sidder og arbejder på en netbutik, men har nu fået et problem med checkout delen af butikken.

Checkout foregår på fålgende måde:
Checkout1: Oversigt over varer i indkøbsvognen (hentes fra session) - link videre til checkout 2.

Checkout2: Indtastning af kundeoplysninger i form (med validering af indtastning) - link videre til checkout 3.

Checkout3: Her skal indholdet af indkøbsvognen og kundeoplysningerne udskrives på skærmen, hvorefter kunden skal afsende ordren ved et klik på en knap. Når ordren afsendes, skal der sendes en mail til kunden og butikken samtidig med at oplysningerne gemmes i databasen.

Mit problem er, at jeg ikke kan gennemskue hvordan jeg på checkout3 får vist oplysningerne fra min session + kundeoplysningerne som blev indtastet i formularen på checkout2, og hvordan jeg får sendt oplysningerne til kunden, butikken og databasen.

Her er min kode fra checkout1:
--------
<%@ Language=VBScript %>
<!-- #include file="db.asp" -->
<!-- #include file="adovbs.inc" -->
<!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<%

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

    if cstr(Session("orderID")) = "" then
%>

<html>
<head>
<title>Kassen - Trin 1 af 3</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
    margin-top: 0px;
    margin-left: 4px;
}
-->
</style>
</head>
<body>
<%
        Response.Write "<p><b>"
        Response.Write "Der er ingen varer i din indkøbsvogn. "
        Response.Write "Hvis du tidligere har lagt varer i indkøbsvognen, "
        Response.Write "er der måske sket en timeout - beklager fejlen.<br><br>"
        Response.Write "<a href='forside_butik.htm' target='tekst'><img src='grafik/fortsat_shop.gif' alt='Fortsæt med at shoppe' border='0' name='fortsat' ></a>&nbsp;"
        Response.Write "<b></p>"
%>
</body>
</html>
<% 
else
       
        intOrderID = cstr(Session("orderID"))

        set rsProd = Server.CreateObject("ADODB.Recordset")
        rsProd.Open "SELECT * FROM ordrelinie " _
            & "WHERE orderID="& intOrderID, _
            Conn, adOpenDynamic, adLockPessimistic, adCmdText
        while not rsProd.EOF

            element = "quant" & rsProd("vareid")
            intQuant = Request.form(element)

            if intQuant <> "" and isNumeric(intQuant) then
                if intQuant = 0 then
                    rsProd.Delete
                else
                    rsProd("antal") = intQuant
                end if
            end if
            rsProd.Update
            rsProd.MoveNext
        wend

        if Request.form("updateorder.x") <> "" and Request.form("updateorder.y") <> "" then

            rsProd.Close
            set rsProd = Nothing
   
            Conn.Close
            set Conn = Nothing

            Response.Redirect "vis_vogn.asp"
        else
       
        if rsProd.BOF and rsProd.EOF then
                rsProd.Close
                set rsProd = Nothing
           
                Conn.Close
                set Conn = Nothing
               
                Session("orderID") = ""
                Response.Redirect "checkout1.asp"
           
        else
%>
<html>
<head>
<title>Kassen - Trin 1 af 3</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
    margin-top: 0px;
    margin-left: 4px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
</head>
<body>
<br><table width="490" border="0" cellspacing="0"><!--indholdstabel start-->
<tr bgcolor="#545DB9">
    <td height="18" ><span class="style1">Kassen - Trin 1 af 3</span></td>
  </tr>
  <tr>
    <td align="left"><p>Din ordre:<br>
        <br>
    </p></td>
  </tr>
  <tr>
    <td>Er indholdet ikke korrekt? Jeg vil ændre indholdet af ordren - <a href="vis_vogn.asp">Klik her...</a></td>
  </tr>
  <tr>
    <td align="center">&nbsp;
   
    </td>
  </tr>
  <tr>
    <td>    <form action="checkout2.asp" method="post" name="form1">
            <input type="hidden" name="intOrderID" value="<%=intOrderID%>">
            <table border="1" cellpadding="1" cellspacing="1" width="470"><!--varetabel-->
            <tr bgcolor="#F2F2FA">
                <td width="13%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Antal</strong></font></td>
                <td width="13%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Vare ID</strong></font></td>
                <td width="44%" align="left" valign="middle"><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Vare</strong></font></td>
                <td width="15%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Pris pr stk</strong></font></td>
                <td width="15%" align="left" valign="middle" nowrap><font color="#000098" face="Verdana" size="2" style="background-color: #F2F2FA"><strong>Pris i alt</strong></font></td>
            </tr>
<%
            set rsProdInfo = Server.CreateObject("ADODB.Recordset")
            rsProdInfo.Open "vare", Conn, adOpenStatic, adLockOptimistic, adCmdTable

            intTotal = 0

            rsProd.MoveFirst
            while not rsProd.EOF
                rsProdInfo.MoveFirst
                rsProdInfo.Find "vareid = " & rsProd("vareid")
                intProdID = rsProd("vareid")
                strProdName = rsProdInfo("titel")
                intPrice = formatNumber(rsProdInfo("pris"), 2)
                intQuant = rsProd("antal")
                intExtPrice = formatNumber((intPrice * intQuant), 2)
                intTotal = intTotal + intExtPrice
%>
                <tr>
                    <td width="13%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= intQuant %></font></td>
                    <td width="13%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= intProdID %></font></td>
                    <td width="44%" align="left" valign="middle" nowrap><font face="Verdana" size="2"><%= strProdName %></font></td>
                    <td width="15%" align="right" valign="middle" nowrap><font face="Verdana" size="2"><%= intPrice %></font></td>
                    <td width="15%" align="right" valign="middle" nowrap><font face="Verdana" size="2"><%= intExtPrice %></font></td>
                </tr>
                <input type="hidden" name="strOrderItem" value="<%= intProdID %>,<%= intQuant %>">
<%
                rsProd.MoveNext
            wend                       
%>
<%
            'display total for products in cart
%>                       
            <tr>
                <td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Subtotal:</font></td>
                <td align="right" valign="middle" nowrap><font face="Verdana" size="2">
                    <%= formatNumber(intTotal, 2) %>
                </font></td>
            </tr>
           
<%
            'add and display amount charged for sales tax:
            'in this case it's 8% of total for products in cart
            'change the .08 to meet your state/province requirements
%>                         
            <tr>
                <td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Heraf moms (25%):</font></td>
                <td align="right" valign="middle" nowrap><font face="Verdana" size="2">
                    <%= formatNumber((intTotal * .20), 2) %>
                    <input type="hidden" name="intTax" value="<%= formatNumber((intTotal * .20), 2) %>">
                </font></td>
            </tr>
<%
            'add and display amount charged for shipping:
            'in this case it's 5% of total for products in cart
            'change the .05 to meet your requirements
%>                       
            <tr>
                <td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2">Fragt & forsendelse (5%):</font></td>
                <td align="right" valign="middle" nowrap><font face="Verdana" size="2">
                    <%= formatNumber((intTotal * .05), 2) %>
                    <input type="hidden" name="intShipping" value="<%= formatNumber((intTotal * .05), 2) %>">
                </font></td>
            </tr>

<%
            'display Grand Total: to get the multiplier 1.0 is the product(s) total plus .08
            'for sales tax and .05 for shipping which equals 1.13. Be sure to change this
            'to meet your requirements
%>             
            <tr>
                <td colspan="4" align="left" valign="middle" nowrap><font face="Verdana" size="2"><b>Kr. Total:</b></font></td>
                <td align="right" valign="middle" nowrap><font face="Verdana" size="2"><b>
                    <%= formatNumber((intTotal*1.05), 2) %>
                    <input type="hidden" name="intTotal" value="<%= formatNumber((intTotal * 1.05), 2) %>">
                </b></font></td>
            </tr>
           
            </table>
            </td></tr>
            <tr><td align="right"><input type="image" src="grafik/gaa_kassen.gif" name="kassen" value="Gå til kassen"></td></tr>
            </form></table>                   
</body>
</html>
<%       
rsProd.Close
set rsProd = Nothing

rsProdInfo.Close
set rsProdInfo = Nothing
        end if
    end if
end if

Conn.Close
set Conn = Nothing
%>
--------

Her er min kode fra checkout2:
--------
<%@ Language=VBScript %>
<!-- #include file="db.asp" -->
<!-- #include file="adovbs.inc" -->
<!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<%

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

    intOrderID = cstr(Session("orderID"))
%>

<html>
<head>
<title>Kassen - Trin 2 af 3</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
    margin-top: 0px;
    margin-left: 4px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>

<script type="text/javascript">

function validering(f){
  if(f.strFirst.value==''){
    alert('Du skal udfylde feltet med fornavn!');
    f.strFirst.focus();
    return false;
  }

  if(f.strLast.value==''){
    alert('Du skal udfylde feltet med efternavn!');
    f.strLast.focus();
    return false;
  }

  if(f.strAddress1.value==''){
    alert('Du skal udfylde feltet med adresse!');
    f.strAddress1.focus();
    return false;
  }

  if(!f.strPostalCode.value.match(/^\d{4}$/)){
    alert('Du skal udfylde feltet med postnr med 4 cifre!');
    f.strPostalCode.focus();
    return false;
  }

  if(f.strCity.value==''){
    alert('Du skal udfylde feltet med by!');
    f.strCity.focus();
    return false;
  }
 
  if(f.strCountry.value==''){
    alert('Du skal udfylde feltet med land!');
    f.strCountry.focus();
    return false;
  }
 
  if(!f.strPhone.value.match(/^\d{8}$/)){
    alert('Du skal udfylde feltet med telefonnummer med 8 cifre!');
    f.strPhone.focus();
    return false;
  }

  if(!f.strEmail.value.match(/^\w.*@\w.*\.\w{2,}$/)){
    alert('Du skal udfylde feltet med e-mail adresse!\n(og det skal være en gyldig adresse)');
    f.strEmail.focus();
    return false;
  }
 
  var chckd = false;
  for(i=0;f.strBetaling.length>i;i++)chckd = chckd||f.strBetaling[i].checked;
 
  if(!chckd){
    alert('Du skal vælge en betalingsform!');
    f.strBetaling[0].focus();
    return false;
  }
 
  if(!f.handelbeting.checked){
    alert('Du skal acceptere Datronic ApS\' handelsbetingelser!');
    f.handelbeting.focus();
    return false;
  }
 
  return true;
}
</script>

</head>
<body>
<br>
  <table width="490" cellpadding="0" cellspacing="0">
    <tr>
      <td height="18" bgcolor="#545DB9" colspan="2"><span class="style1">Kassen - Trin 2 af 3</span></td>
    </tr>
    <tr>
      <td colspan="2"><p>Kundeoplysninger<br>
        <br>
    </p></td>
  </tr>
    <form action="checkout3.asp" method="post" name="form2" onsubmit="return validering(this);">
            <input type="hidden" name="intOrderID" value="<%=intOrderID%>">
    <tr><td bgcolor="#F2F2FA" colspan="2"><strong>Navn & Adresse </strong></td>
    </tr>
    <tr>
      <td>Navn (For, Efter): </td>
      <td><input type="text" name="strFirst" size="10">
          <input type="text" name="strLast" size="10">
      </td>
    </tr>
    <tr>
      <td>E-mail Adresse: </td>
      <td><input type="text" name="strEmail" size="21">
          &nbsp;F.eks.: mail@datronic.dk </td>
    </tr>
    <tr>
      <td>Gade/vej: </td>
      <td><input type="text" name="strAddress1" size="21">
      </td>
    </tr>
          <tr>
      <td>Postnr</td>
      <td><input type="text" name="strPostalCode" size="5">
      </td>
    </tr>
    <tr>
      <td>By</td>
      <td><input type="text" name="strCity" size="21">
      </td>
    </tr>
    <tr>
      <td>Land</td>
      <td><input type="text" name="strCountry" size="21"></td>
    </tr>
    <tr>
      <td>Telefon</td>
      <td><input type="text" name="strPhone" size="21">
          &nbsp;F.eks.: 86256343 </td>
    </tr>
    <tr>
      <td colspan="2"><hr color="#CCCCCC" size="1" noshade></td>
    </tr>
    <tr bgcolor="F2F2FA">
      <td colspan="2"><strong>Leveringsadresse (hvis anden end kundeadresse)</strong></td>
    </tr>
    <tr>
      <td valign="top">Navn, Adresse, Postnr, by </td>
      <td><textarea name="strShipAdresse" rows="4">Skriv her...</textarea>                            </td>
    </tr>
    <tr>
      <td colspan="2"><hr color="#CCCCCC" size="1" noshade></td>
    </tr>
    <tr bgcolor="F2F2FA">
      <td colspan="2"><strong>Betalingsform</strong></td>
    </tr>
    <tr>
      <td colspan="2"><font face="Verdana" size="2">
        <input type="radio" name="strBetaling" value="bank" checked>
      Bankoverførelse
      <input type="radio" name="strBetaling" value="efterkrav">
      Efterkrav </font></td>
    </tr>
    <tr>
      <td colspan="2"><hr color="#CCCCCC" size="1" noshade></td>
    </tr>
    <tr><td colspan="2"><input type="checkbox" name="handelbeting" value="handelJa"> Jeg accepterer Datronic ApS' handelsbetingelser - <a href="handelbeting.htm" target="_blank">handelsbetingelser læs her...</a>    <br> </td>
    </tr>
    <tr>
      <td colspan="2" align="right"><input type="submit" src="grafik/gaa_kassen.gif" name="kassen" value="Gå til kassen">
      </td>
    </tr>
    </form>
  </table>
 
 
  </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
</body>
</html>
<%       

Conn.Close
set Conn = Nothing
%>
--------

Puh ha - det er godt nok en lang smøre, men jeg håber der er nogen der kan hjælpe mig.

/Annette
Avatar billede annettef Nybegynder
21. september 2004 - 14:52 #1
Lukker spørgsmålet, da jeg tror jeg selv har fundet en løsning på problemet!

/Annette
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