This is a multi-part message in MIME format.

------=_NextPart_000_0125_01BFDF10.CC8062E0
Content-Type: text/plain;
        charset="Windows-1252"
Content-Transfer-Encoding: 7bit

> What 'd like to be able to do is have them go down the page, entering
> quantities against the items they want, and then process the order on teh
> one click.

This is the way I normally build my shopping carts.  You'll end up doing a
loop of some sort, but I don't like using Form.FieldNames (as someone else
suggested) because, especially with a large form, it adds up to a lot of
wasted processing time.

Here's what I do:

1) When displaying the front end, maintain a list of the item codes that are
on the page.  If you are displaying items from a query this is easy: each
ouput iteration do the following:
<INPUT TYPE="hidden" NAME="ItemsOnPage" VALUE="#qryQ.ItemCode#">

Also, you'll need to include a quantity field for each item.  You can do
this like so:
<INPUT TYPE="text" NAME="Qty_#qryQ.ItemCode#">
This gives you a quantity field for each item on the form. You can access
the qty of any item simply by appending the Item Code to the string "Qty_".
In other words, Item Code 5 would have a qty field called "Form.Qty_5".

You can set other item-specific params (such as item flags) in this same
way.

<FORM ACTION="action_page.cfm">
    <CFOUTPUT QUERY="qryQ">
        <!--- hidden control vars --->
        <INPUT TYPE="hidden" NAME="ItemsOnPage" VALUE="#qryQ.ItemCode#">
        <!--- form fields for user input --->
        <INPUT TYPE="text" NAME="Qty_#qryQ.ItemCode#">
    </CFOUTPUT>
    <INPUT TYPE="submit">
</FORM>

2) When the form submits it will pass along a form field called
"ItemsOnPage" that contains a nicely formatted, comma delimited list of item
codes that the user had access to on the form.  You can then do a loop over
that list (thus ensuring you only loop as many times as you absolutely have
to) to access each quantity field.

For example:
<CFLOOP INDEX="thisCode" LIST="#Form.ItemsOnPage#">
    <!--- get the qty for this item --->
    <CFSET intQty = Evaluate("Form.Qty_" & thisCode)>
    <!--- you could get other item-specific params also --->

    <!--- run a query here for item details using the value of thisCode.
Certain data,
        like prices, should always be pulled from the DB rather than passed
via form
        to ensure that people don't hack your cart --->

    <!--- once you have all of the data you need, and as long as the user
requested
        a non-zero qty, do your insert here --->
</CFLOOP>

Hope that makes some sense.  I'm REALLY tired, so I may be overstating the
obvious... I'm also beginning to see things that aren't there<g>.  Anyways,
if you need anything clarified just let me know.  I've used this approach on
a number of different applications, and it seems to work pretty darn good.

Regards,
Seth Petry-Johnson
Argo Enterprise and Associates

------=_NextPart_000_0125_01BFDF10.CC8062E0
Content-Type: application/x-pkcs7-signature;
        name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
        filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIII+DCCAqsw
ggIUoAMCAQICAwK37jANBgkqhkiG9w0BAQQFADCBlDELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdl
c3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UE
CxMUQ2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1BlcnNvbmFsIEZyZWVtYWlsIFJTQSAx
OTk5LjkuMTYwHhcNMDAwNjA5MDQyMTIzWhcNMDEwNjA5MDQyMTIzWjBJMR8wHQYDVQQDExZUaGF3
dGUgRnJlZW1haWwgTWVtYmVyMSYwJAYJKoZIhvcNAQkBFhdzZXRoQGFyZ29lbnRlcnByaXNlLmNv
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxA83MlfgaZLW39mrcBRBfRdRa9/UPl6M26qE
caUhQcMW66UyxV/Xi7WK0uKqPpYoCyo327ZN92tUFMZNI5kZC6VATN3reeWio2bffeC0bwm4vKzQ
fPXnOz7dCOdcrzWZL+Dt/Qf+5VxoMsDtbiwUDg3dASSIWJFFuXNYfo1fyh0CAwEAAaNVMFMwIgYD
VR0RBBswGYEXc2V0aEBhcmdvZW50ZXJwcmlzZS5jb20wDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAW
gBSIq/Fgg2ZV9ORYx0YdwGG9I9fDjDANBgkqhkiG9w0BAQQFAAOBgQAn4BFAYqTTdeMfQ3T8vPaW
W+BLJ02KZX4QMU0iWjf7b2MYYqb0BxwZcr+r5UmT99nGRPVoVKS/OgikLXHm98wPEy8Ye9LZXTTN
XF43kwMGPDG2G6urhJvpXI98FFK9biRJzZ28GBqLOPw/vHB57gk8J9YeyRSxWqzTgkwsJSFvEzCC
AxQwggJ9oAMCAQICAQswDQYJKoZIhvcNAQEEBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxX
ZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRp
bmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1Ro
YXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1h
aWxAdGhhd3RlLmNvbTAeFw05OTA5MTYxNDAxNDBaFw0wMTA5MTUxNDAxNDBaMIGUMQswCQYDVQQG
EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRQwEgYDVQQHEwtEdXJiYW52aWxsZTEPMA0GA1UE
ChMGVGhhd3RlMR0wGwYDVQQLExRDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEoMCYGA1UEAxMfUGVyc29u
YWwgRnJlZW1haWwgUlNBIDE5OTkuOS4xNjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAs2la
l9TQFgt6tcVd6SGcI3LNEkxL937Px/vKciT0QlKsV5Xje2F6F4Tn/XI5OJS06u1lp5IGXr3gZfYZ
u5R5dkw+uWhwdYQc9BF0ALwFLE8JAxcxzPRB1HLGpl3iiESwiy7ETfHw1oU+bPOVlHiRfkDpnNGN
FVeOwnPlMN5G9U8CAwEAAaM3MDUwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRyScJz
NMZV9At2coF+d/SH58ayDjANBgkqhkiG9w0BAQQFAAOBgQBrxlnpMfrptuyxA9jfcnL+kWBI6sZV
3XvwZ47GYXDnbcKlN9idtxcoVgWL3Vx1b8aRkMZsZnET0BB8a5FvhuAhNi3B1+qyCa3PLW3Gg1Kb
+7v+nIed/LfpdJLkXJeu/H6syg1vcnpnLGtz9Yb5nfUAbvQdB86dnoJjKe+TCX5V3jCCAy0wggKW
oAMCAQICAQAwDQYJKoZIhvcNAQEEBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJu
IENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAm
BgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQ
ZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhh
d3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHRMQswCQYDVQQGEwJaQTEV
MBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0
ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQw
IgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzApBgkqhkiG9w0BCQEWHHBlcnNv
bmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANRp19Sw
lGRbcelH2AxRtupykbCEXn0tDY97Et+FJXUodDpCLGMnn5V7S+9+GYcdhuqj3bnOlmQawhRuRKx8
5o/oTQ9xH0A4pgCjh3j2+ZSGXq3qwF5269kUo11uenwMpUtVfwYZKX+emibVars4JAhqmMex2qOY
kf152+VaxBy5AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAx+yS
fk749ZalZ2IqpPBNEWDQb41gWGGsJrtSNVwIzzD7qEqWih9iQiOMFw/0umScF6xHKd+dmF7SbGBx
XKKs3Hnj524ARx+1DSjoAp3kmv0T9KbZfLH43F8jJgmRgHPQFBveQ6mDJfLmnC8Vyv6mq4oHdYsM
3VGEa+T40c53ooExggHCMIIBvgIBATCBnDCBlDELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rl
cm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMU
Q2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1BlcnNvbmFsIEZyZWVtYWlsIFJTQSAxOTk5
LjkuMTYCAwK37jAJBgUrDgMCGgUAoH0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG
9w0BCQUxDxcNMDAwNjI2MDU0OTQyWjAeBgkqhkiG9w0BCQ8xETAPMA0GCCqGSIb3DQMCAgEoMCMG
CSqGSIb3DQEJBDEWBBRMyJeWdV+p96S+Ob9BqmWzbRaFTTANBgkqhkiG9w0BAQEFAASBgHfmJi/D
sl1jkXtOUNvOlfuoe+Bm5zaz8DnhQtTtFxDXSV8miF48v3AzMclNfbFLRvzBe4419VcfsyoGG9yu
MGwm+N/w3dDxPgrS+NyKR0cyO/gFNEIhIeWpadnL90r+n1ng/MzY3kl/xU+xL4RttqOoXdvmwX4w
22LB7CxcccuxAAAAAAAA

------=_NextPart_000_0125_01BFDF10.CC8062E0--

------------------------------------------------------------------------------
Archives: http://www.eGroups.com/list/cf-talk
To Unsubscribe visit 
http://www.houseoffusion.com/index.cfm?sidebar=lists&body=lists/cf_talk or send a 
message to [EMAIL PROTECTED] with 'unsubscribe' in the body.

Reply via email to