[ic] Follow up to FormAction question
Randy Moore
ramoore@axion-it.net
Mon, 11 Sep 2000 18:24:19 -0400
Hi again,
Sorry for following up my own post, but I forgot to explain why I'm trying
to use FormAction. Maybe there is a better way. Any suggestions?
I'm actually trying to use a 'profile' to validate form fields before a
customer is allowed to add an item to their basket. In other words, unless
the customer provides good values in a form, they can't add this product to
their basket.
I couldn't find a simple way to do this, so I decided to create a
FormAction that would evaluate a 'profile' and only if the profile
succeeded, process any items ordered on the form. I took the logic for
this (with many changes) from the 'submit' formaction defined in /bin/minivend.
Here is the real FormAction I want to use:
FormAction item_profile <<EOR
sub {
my($missing,$next,$status,$final);
# Set shopping cart if necessary
# Vend::Items is tied, remember!
$Vend::Items = $CGI::values{mv_cartname}
if $CGI::values{mv_cartname};
if (defined $CGI->{mv_order_profile}) {
($status,$final,$missing) =
check_order($CGI->{mv_order_profile});
}
else {
$status = 1;
}
if($status) {
add_items() if defined
$CGI->{mv_order_item};
$CGI->{mv_nextpage} = $CGI->{mv_successpage}
if $CGI->{mv_successpage};
$CGI->{mv_nextpage} = $CGI->{mv_orderpage}
if ! $CGI->{mv_nextpage};
}
else {
$CGI::values{mv_nextpage} = $::Values->{mv_failpage}
if $::Values->{mv_failpage};
$CGI::values{mv_nextpage} = find_special_page('needfield')
if ! $CGI::values{mv_nextpage};
}
return(1);
}
EOR
Unfortunately, as I mentioned in my first post, I don't seem to be
accessing the $CGI structure properly.
I've tried both $CGI->{mv_nextpage} and $CGI::values{mv_nextpage} as ways
set/read these values, but neither works.
Any comments, hints, alternate methods, etc would be most appreciated.
Thanks.
Randy Moore
Axion Information Technologies, Inc.
email ramoore@axion-it.net
phone 301-408-1200
fax 301-445-3947