簡體   English   中英

冷聚變購物車無法正常工作

[英]Cold Fusion Shopping Cart not working

我花了上個月的時間來嘗試解決這個ColdFusion問題...我有5個cfm文件。 這些是我遇到的以下問題:ShoppingCart.cfm:表是級聯的,而不是保持相同的格式。 revieworder.cfm:customerinfo.cfm頁面上的customerinfo沒有顯示。 OrderConfirmation.cfm:無法通過電子郵件向客戶發送發票副本...坦白說,整個操作均不起作用,我感覺這與會話有關:application.cfm文件。 如果有人可以幫助指導我,我將不勝感激!

application.cfc

 <cfcomponent> <cfset this.name = "mmd24shoppingcart"> <cfset this.datasource = "mmd24_shoppingcart"> <cfset this.sessionmanagement="Yes"> <cfset this.sessiontimeout="#createtimespan(0,0,45,0)#"> <cfset This.applicationtimeout="#createtimespan(5,0,0,0)#"> <cffunction name = "onApplicationStart"> <cfscript> Application.availableResources=0; Application.counter1=1; Application.sessions=0; </cfscript> </cffunction> <cffunction name="onSessionStart"> <cfscript> Session.started = now(); Session.shoppingCart = Structnew(); Session.shoppingCart.items =0; </cfscript> </cffunction> </cfcomponent> 

shoppingcart.cfm

 <!doctype html> <htmllang="en"> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <head> <cfparam name="url.productid" default=""> <cfparam name="url.qty" default=""> </head> <title>shoppingcart</title> <body> <div class="container"> <h3><center>Shopping Cart</center></h3> <cfquery name = "getlist" datasource="mmd24_shoppingcart"> SELECT * FROM Products WHERE Products.productID = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.productid#"> </cfquery> <cflock scope="session" timeout="10"> <cfset addNew = true> <cfif not isDefined("session.cart")> <cfset session.cart = arrayNew(1)> <cfelse> <cfloop index="i" from="1" to="#arrayLen(session.cart)#"> <cfif URL.productid is session.cart[i].productId> <cfset session.cart[i].productQty = session.cart[i].productQty + 1> <cfset addNew = false> </cfif> </cfloop> </cfif> <cfif addNew is true> <cfset newItem=StructNew()> <cfset newItem.productId = URL.productid> <cfset newItem.productName = getlist.ProductName> <cfset newItem.productPrice = getlist.ProductPrice> <cfset newItem.productDescription = getlist.ProductDescription> <cfset newItem.productQty = URL.qty> <cfset newItem.productPhoto = getlist.ProductPhoto> <cfset ArrayAppend(session.cart, newItem)> </cfif> <cfset TotalOrderAmount = 0> <cfset TotalItemAmount = 0> <cfset TotalTax = 0> <cfset counterhi = 0> </cflock> <cfoutput query ="getlist"> <cflock scope="session" type="readonly" timeout="10"> <cfloop index="i" from="1" to="#arrayLen(session.cart)#"> <table class = "table table-bordered"> <thead> <tr> <th>Product Photo</th> <th>Product Name</th> <th>Product Description</th> <th>Quantity Ordered</th> <th>Product Price</th> </th> </thead> <tbody> <tr> <td><img src="#session.cart[i].ProductPhoto#"></td> <td>#session.cart[i].ProductName#</td> <td>#session.cart[i].ProductDescription#</td> <td>#session.cart[i].ProductQty#</td> <td>#DollarFormat(session.cart[i].ProductPrice)#</td> </tr> </tbody> <table class = "table"> <cfset Itemtotal = #getlist.productprice# * #session.cart[i].ProductQty#> <cfset OrderTotal = #Itemtotal#> <cfset Tax = #OrderTotal# * "0.08"> <cfset TotalOrderAmount = #OrderTotal# + #Tax# + #TotalOrderAmount#> <cfset TotalItemAmount = #Itemtotal# + #TotalItemAmount#> <cfset TotalTax = #Tax# + #TotalTax#> <tr> <td class="col-lg-9 text-right">Subtotal</td> <td class="text - left">#DollarFormat(itemTotal)#</td> </tr> <tr> <td class="col-lg-9 text-right">Tax(8%)</td> <td>#DollarFormat(Tax)#</td> </tr> <tr> <td class="col-lg-9 text-right">Order Total</td> <td>#DollarFormat(TotalOrderAmount)# <br> <br> </cfloop> </cflock> </cfoutput> <a input type="submit" name="submit" href="customerinfo.cfm" class="btn btn-primary" role="button">Proceed to Checkout</a> <br> </br> <a input type="submit" name="submit" href="productlist.cfm" class="btn btn-primary" role="button">Continue Shopping</a> </td> </tr> </tbody> </div> <script src="js/bootstrap.js"></script> </body> </html> 

customerinfo.cfm

 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Customer Info</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content="Html5TemplatesDreamweaver.com"> <link href="scripts/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="scripts/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet"> <script src="js/jquery.js"></script> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> </head> <body id="pageBody"> </script> <table border="3" style="background-color:#FFFFFF;border- collapse:collapse; border:3px solid #0033FF;color:#000000;"> <tr> <td> <div id="divHeaderLine1">Billing Address</div> <br> <label for="bFirstName"><font color="red">*</font>First Name</label> <input type="text" size="20" required="" name="bFirstName" id="bFirstName"> <br> <label for="bLastName"><font color="red">*</font>Last Name</label> <input type="text" size="20" required="" name="bLastName"> <br> <label for="bAddress"><font color="red">*</font>Address</label> <input type="text" size="20" required="" name="bAddress"> <br> <label for="bCity"><font color="red">*</font>City</label> <input type="text" size="20" required="" name="bCity"> <br> <label for="bState"><font color="red">*</font>State</label> <select name="bState" size=”4”> <option value="" selected></option> <option value="GA">Georgia</option> <option value="FL">Florida</option> <option value="AL">Alabama</option> <option value="TX">Texas</option> <option value="MS">Mississippi</option> <option value="LA">Louisiana</option> </select> <br> <label for="bZip"><font color="red">*</font>Zip Code</label> <input type="text" size="20" required="" name="bZip"> <br> <label for"bEmail"><font color="red">*</font>Email Address</label> <input type="text" size="20" name="bEmail"> </td> <td> <div id="divHeaderLine1">Shipping Address</div> <br> </br> <input type="checkbox" name="billingtoo" onclick="FillBilling(this.form)">Same as billing <br> <br> <label for="sFirstName"><font color="red">*</font>First Name</label> <input type="text" size="20" name="sFirstName"> <label for="sLastName"><font color="red">*</font>Last Name</label> <input type="text" size="20" name="sLastName"> <br> <label for="sAddress"><font color="red">*</font>Address</label> <input type="text" size="20" name="sAddress"> <br> <label for="sCity"><font color="red">*</font>City</label> <input type="text" size="20" name="sCity"> <br> <label for="sState"><font color="red">*</font>State</label> <select name="sState" size=”4”> <option value="" selected></option> <option value="GA">Georgia</option> <option value="FL">Florida</option> <option value="AL">Alabama</option> <option value="TX">Texas</option> <option value="MS">Mississippi</option> <option value="LA">Louisiana</option> </select> <br> <label for="sZip"><font color="red">*</font>Zip Code</label> <input type="text" size="20" name="sZip"> <br> <label for="sEmail"><font color="red">*</font>Email Address</label> <input type="text" size="20" name="sEmail"> <br/> </td> </tr> <tr> <td> <div id="divHeaderLine1">Shipping Method</div> <br> </br> <input class="validate[required] checkbox" type="checkbox" name="Shipping" value="OverNight"> Over Night <br/> <input class="validate[required] checkbox" type="checkbox" name="Shipping" value="OneDay"> One Day <br/> <input class="validate[required] checkbox" type="checkbox" name="Shipping" value="TwoDay" checked> Two Day <br/> <br> </td> <td> <div id="divHeaderLine1">Payment Details</div> <br> <br> <celect class="cc-ddl-type"> <input class="validate[required] radio" type="radio" name="CC" value="Visa" checked> Visa <br/> <input class="validate[required] radio" type="radio" name="CC" value="Master"> Master <br/> <input class="validate[required] radio" type="radio" name="CC" value="Discover"> Discover <br/> <br><label><font color="red">*</font> Card Number </label> <input value="" class="ccNumber" type="text" required=""> <br> <label>Expires on:</label> <select name="ccMonth" class="validate[required]"> <option value="January">January</option> <option value="February">February</option> <option value="March">March</option> <option value="April">April</option> <option value="May">May</option> <option value="June">June</option> <option value="July">July</option> <option value="August">August</option> <option value="September">September</option> <option value="October">October</option> <option value="November">November</option> <option value="December">December</option> </select> <br/> <select name="ccYear" class="validate[required]"> <option value="2011">2016</option> <option value="2012">2017</option> <option value="2013">2018</option> <option value="2014">2019</option> <option value="2015">2020</option> </select> </td> </tr> <br/> <br> <tr> <td colspan="2" style="text-align: center; vertical-align: middle;"> <a input type="submit" href="revieworder.cfm" class="btn btn-primary" role="button">Review Order</a> </td> </tr> </table> </form> <script src="scripts/jquery.min.js" type="text/javascript"></script> <script src="scripts/bootstrap/js/bootstrap.min.js" type="text/javascript"></script> <script src="scripts/default.js" type="text/javascript"></script> </body> </html> 

revieworder.cfm

 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>revieworder</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <link href="scripts/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="scripts/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet"> <cfparam name="form.bFirstName" default=""> <cfparam name="form.bLastName" default=""> <cfparam name="form.bAddress" default=""> <cfparam name="form.bCity" default=""> <cfparam name="form.bState" default=""> <cfparam name="form.bZip" default=""> <cfparam name="form.bEmail" default=""> <cfparam name="form.sFirstName" default=""> <cfparam name="form.sLastName" default=""> <cfparam name="form.sAddress" default=""> <cfparam name="form.sCity" default=""> <cfparam name="form.sState" default=""> <cfparam name="form.sZip" default=""> <cfparam name="form.sEmail" default=""> <cfparam name="form.ccNumber" default=""> <cfparam name="form.ccMonth" default=""> <cfparam name="form.ccYear" default=""> <cfparam name="form.shipping" default=""> <cfparam name="form.CC" default=""> <cfset TotalOrderAmount = 0> <cfset TotalItemAmount = 0> <cfset TotalTax = 0> <cfset ShippingTotal = 0> </head> <body id="pageBody"> <form action="OrderConfirmation.cfm" method="post"> <table border="1" width="100%" align="center"> <thead> <tr> <cfoutput> <td width="20%"> Product Photo</td> <td width="20%"> Product Name</td> <td width="20%"> UnitPrice</td> <td width="20%"> Quantity Ordered</td> <td width="20%"> Total Cost</td> </td> </tr> <tr> <cflock scope="session" type="readonly" timeout="5"> <cfparam name="session.cart" default="#ArrayNew(1)#"> <cfset cart = ArrayLen(session.cart)> <cfset total = 0> <cfloop index="i" from="1" to="#cart#"> <td width="20%"> <cfset Itemtotal = #session.cart[i].ProductPrice# * #session.cart[i].ProductQty#> <cfset OrderTotal = #session.cart[i].ProductPrice#> <cfset Tax = #OrderTotal# * "0.08"> <cfset TotalOrderAmount = #OrderTotal# + #Tax# + #TotalItemAmount#> <cfset TotalItemAmount = #Itemtotal# > <cfset TotalTax = #Tax# + #TotalTax#> <cfif #Shipping# is "Ground"> <cfset ShippingTotal = .01 * #TotalOrderAmount#> </cfif> <cfif #Shipping# is "Air"> <cfset ShippingTotal = .02 * #TotalOrderAmount#> </cfif> <cfif #Shipping# is "Overnight"> <cfset ShippingTotal = .03 * #TotalOrderAmount#> </cfif> <tr> <td colspan="1"><b> <img src="#session.cart[i].ProductPhoto#"></b></td> <td colspan="1"><b> #session.cart[i].ProductName#</b></td> <td colspan="1"><b> #session.cart[i].ProductPrice#</b></td> <td colspan="1"><b> #session.cart[i].ProductQty#</b></td> <td colspan="1"><b> #session.cart[i].ProductPrice#</b></td> </tr> </cfloop> </cflock> </tr> <td colspan="4"><b> Order Amount</b></td> <td colspan="1"><b> <center>#DollarFormat(TotalItemAmount)#</center></td> </tr> <tr> <td colspan="4"><b> Tax</b></td> <td colspan="1"><b> <center>#DollarFormat(TotalTax)#</center></td> </tr> <tr> <td colspan="4"><b> Shipping Cost </b></td> <td colspan="1"><b> <center>#DollarFormat(ShippingTotal)#</center></td> </tr> <tr> <td colspan="4"><b> Order Total</b></td> <td colspan="1"><b> <cfset TotalOrderAmount = + #TotalOrderAmount#> <center>#DollarFormat(TotalOrderAmount)#</center></td> </tr> </cfoutput> </thead> </table> <div id="divHeaderText" class="page-content"> <div id="divHeaderLine1">Your Address and Payment Details</div> </br> <table border="1" width="75%" align="center"> <tr> <cfoutput> <td><b>Billing Address:</td></b> <td width="80%"> #Form.bFirstName# #Form.bLastName#<br> #Form.bAddress# <br> #Form.bCity#, #Form.bState# #Form.bZip#<br> <strong>Email: </strong>#Form.bEmail#<br></td> </tr> <tr> <td><b>Shipping Address:</b></td> <td> #form.sFirstName# #form.sLastName# <br> #form.sAddress#<br> #form.sCity#, #form.sState# #form.sZip#<br> <b>Email: </b>#form.sEmail#<br> </td> </tr> <tr> <td><b>Payment Type:</td> </b><br><td> #form.CC# Credit Card Number: #REReplace(form.ccNumber," [0-9](?=.*.{4})", "*", "all")# <br> <tr> <td> <b>Exp Date: </b></td><td>#form.ccMonth# /#form.ccYear# </td> </td> </tr> </cfoutput> </thead> </table> <br><br><br><br> <input type="hidden" name="Email" value="<cfoutput>#form.bEmail# </cfoutput>"/> <input type="hidden" name="ShippingA" value="<cfoutput>#ShippingTotal# </cfoutput>"/> <input type="hidden" name="OrderA" value="<cfoutput>#TotalOrderAmount# </cfoutput>"/> <input type="hidden" name="ItemA" value="<cfoutput>#TotalItemAmount# </cfoutput>"/> <input type="hidden" name="TaxA" value="<cfoutput>#TotalTax# </cfoutput>"/> <input type="hidden" name="Address" value="<cfoutput>#form.bAddress# </cfoutput>"/> <input type="hidden" name="Shipping" value="<cfoutput>#form.Shipping# </cfoutput>"/> <a input type="submit" value="submit" href="OrderConfirmation.cfm" class="btn btn-primary" role="button">Confirm Order</a> </form> </body> </html> 

訂單Confirmation.cfm(這是所有東西都弄亂了的地方)

 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Order Confirmation</title> <cfparam name="form.email" default="VOID"> <cfparam name="form.Shipping" default=""> <cfparam name="form.address" default=""> <cfparam name="form.ShippingA" default="0"> <cfparam name="form.OrderA" default="0"> <cfparam name="form.ItemA" default="0"> <cfparam name="form.TaxA" default="0"> Email Confirmation <cfmail from="mmd24@students.uwf.edu" to="#form.email#" subject="Your Order Confirmation" type="html"> <html> <head></head> <body> <cfset r = randomize(7, "SHA1PRNG")> <cfset Int = 10000 /> <cfset Int2 = 80000 /> <cfoutput> Thank you for your Order #session.customerform.BfirstName# #session.customerform.BlastName#</br> Your order numer is #randRange(Int, Int2, "SHA1PRNG")# </br> <cfif #session.customerform.Shipping# is "OverNight"> Your order will arive in 12 Hours since you opted for Over Night shipping </cfif> <cfif #session.customerform.Shipping# is "OneDay"> Your order will arive in 1 day since you opted for One Day shipping </cfif> <cfif #session.customerform.Shipping# is "TwoDay"> Your order will arive in 2 days since you opted for Two Day shipping </cfif></br> Your order will be shipped to the following address: #session.customerform.address# <table border="1" width="100%" align="center"> <thead> <tr> <th colspan="5"> Your Order Details </th> </tr> <tr> <cfoutput> <td width="20%"> Product Photo</td> <td width="20%"> Product Name</td> <td width="20%"> UnitPrice</td> <td width="20%"> Quantity Ordered</td> <td width="20%"> Total Cost</td> </td> </tr> <tr> <cflock scope="session" type="readonly" timeout="5"> <cfparam name="session.cart" default="#ArrayNew(1)#"> <cfset cart = ArrayLen(session.cart)> <cfset total = 0> <cfloop index="i" from="1" to="#cartSize#"> <td width="20%"> <tr> <td colspan="1"><b> <img src="#session.cart[i].ProductPhoto#"></b></td> <td colspan="1"><b> #session.cart[i].ProductName#</b></td> <td colspan="1"><b> #session.cart[i].ProductPrice#</b></td> <td colspan="1"><b> #session.cart[i].ProductQTY#</b></td> <td colspan="1"><b> #session.cart[i].ProductPrice#</b></td> </tr> </cfloop> </cflock> </tr> <td colspan="4"><b> Order Amount</b></td> <td colspan="1"><b> <center>#DollarFormat(form.ItemA)#</center></td> </tr> <tr> <td colspan="4"><b> Tax</b></td> <td colspan="1"><b> <center>#DollarFormat(form.TaxA)#</center></td> </tr> <tr> <td colspan="4"><b> Shipping Cost (Shipping Method: #session.customerform.Shipping#) </b></td> <td colspan="1"><b> <center>#DollarFormat(form.ShippingA)#</center></td> </tr> <tr> <td colspan="4"><b> Order Total</b></td> <td colspan="1"><b> <center>#DollarFormat(form.OrderA)#</center></td> </tr> </cfoutput> </thead> </table> </cfoutput> </body> </html> </cfmail> </head> <cflock scope="session" timeout="10"> <cfset session.customerform = StructNew()> <cfset session.customerform.bFirstName = form.bFirstName> <cfset session.customerform.bLastName = form.bFastName> <cfset session.customerform.bAddress = form.bAddress> <cfset session.customerform.bCity = form.bCity> <cfset session.customerform.bCtate = Form.bState> <cfset session.customerform.bZipCode = Form.bZipCode> <cfset session.customerform.bEmail = Form.bEmail> <cfset session.customerform.sFirstName = Form.sFirstName> <cfset session.customerform.sLastName = Form.sLastName> <cfset session.customerform.sAddress = Form.sAddress> <cfset session.customerform.sCity = Form.sCity> <cfset session.customerform.sState = Form.sState> <cfset session.customerform.sZipCode = Form.sZipCode> <cfset session.customerform.sEmail = Form.sEmail> <cfset session.customerform.CC = Form.CC> <cfset session.customerform.ccMonth = Form.ccMonth> <cfset session.customerform.ccYear = Form.ccYear> <cfset session.customerform.Shipping= Form.Shipping> </cflock> <div id="divHeaderText" class="page-content"> <div id="divHeaderLine1">Thank you for your Order </div> #session.customerform.bFirstName# #session.customerform.bLastName# !!</div> <h2>Your Order number is <font color="red"> #randRange(Int, Int2, "SHA1PRNG")# </font></h2> <h2><cfif #session.customerform.Shipping# is "OverNight"> Your order will arive in 12 hours since you opted for Overnight shipping </cfif> <cfif #session.customerform.Shipping# is "OneDay"> Your order will arive in 1 day since you opted for One Day shipping </cfif> <cfif #session.customerform.Shipping# is "TwoDay"> Your order will arive in 2 days since you opted for Two Day shipping </cfif></h2> <h2>Your order will be shipped to the following address: <font color="red">#session.customerform.sAddress# </font></h2> </br> </div> <cflock timeout=20 scope="Session" type="Exclusive"> <cfset StructDelete(Session, "cart")> </cflock> </body> </html> 

快速瀏覽,顯然“ customerinfo.cfm”存在兩個問題:

  1. 沒有開始的<form>標記。 盡管有一個結束標記: </form>
  2. SUBMIT按鈕的語法錯誤。

插入開始的<form>標記,並將表單操作定義為“ reviewOrder.cfm”。 將提交按鈕更改為<input type="submit ...>

還有一件事:正文標簽開始后出現了腳本標簽( </script> )的結尾!

希望這會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM