What am I missing? Why can't I multiply variables with Ajax?
Every individual that works with CF tells me how easy AJAX is to work with. But, I beg to differ. I am trying to get a simple product page to calculate products * quantity. I spent a good 12 hours scouring over the internet and never found the solution.
I have a page called shoppingCartForm.cfm that calls shoppingCartAction.cfm into play. On the shoppingCartAction.cfm is where I am trying to calculate the sub total. I can get the individual variables to output correctly, yet they will not cooperate when I try to coax them into multiply them. Maybe I should use a little positive affirmation and call them rabbits. As usual, any help would be appreciated, I don't have much hair left.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
<head>
<title>Your Order</title>
</head>
<body>
<cfif isDefined("Form.submit")>
<cfparam name="Form.itemID" default="">
<cfoutput>
You have ordered the following items:<br>
<br>
<cfloop index="i" list="#Form.itemID#">
ProductName: #Form["product_" & i]#<br>
Product Code: #Form["sku_" & i]#<br>
Quantity: #Form["qty_" & i]#<br>
Price: #form["price_" & i]#<br>
Sub: #Form["price_" & i]# * #Form["qty_" & i]#
<br>
</cfloop>
</cfoutput>
</cfif>
</body>
</html>
Page code for the page that call up the above page:
<html>
<head>
<title>Shopping Cart</title>
</head>
<cfscript>
CartItems=2;
Cart = ArrayNew(1);
for ( i=1; i LE cartItems; i=i+1)
{
Cart = StructNew();
Cart.ID = i;
Cart.Name = "Product " & i;
Cart.SKU = i*100+(2*i*10)+(3*i);
Cart.Qty = 3*i-2;
Cart.Price = 10;
}
</cfscript>
<body>
Your shopping cart has the following items.<br>
You can change your order quantities.<br>
If you don't want any item, clear the item's check box.<br>
When you are ready to order, click submit.<br>
<br>
<cfform name="ShoppingCart" action="ShoppingCartAction.cfm" method="post">
<table>
<tr>
<td>Order?</td>
<td>Product</td>
<td>Code</td>
<td>Quantity</td>
<td>Price</td>
<td>Sub Total</td>
</tr>
<cfset index ={}>
<cfloop index="i" from="1" to="#cartItems#">
<tr>
<cfset productName= "product_" & Cart.ID>
<cfset skuName= "sku_" & Cart.ID>
<cfset qtyname= "qty_" & Cart.ID>
<cfset pricename= "price_" & Cart.id>
<td><cfinput type="checkbox" name="itemID" value="#Cart.ID#" checked>
</td>
<td><cfinput type="text" name="#productName#" value="#Cart.Name#" passThrough = "readonly = 'True'"></td>
<td><cfinput type="text" name="#skuName#" value="#Cart.SKU#" passThrough = "readonly = 'True'"></td>
<td><cfinput type="text" name="#qtyName#" value="#Cart.Qty#"></td>
<td><cfinput type="text" name="#priceName#" value="#Cart.Price#"></td>
</tr>
</cfloop>
<tr>
<td align=right><input type="submit" name="submit" value="submit"></td>
</tr>
</table>
</cfform>
</body>
</html>
