Date: Monday June 16, 2003 @ 8:59
Author: matt
Update of /home/cvs/AxKit-XSP-PerForm
In directory localhost:/home/matt/Perl/AxKit-XSP-PerForm
Modified Files:
PerForm.pm
Log Message:
Support multiple forms on one page better
Log:
PR:
Index: PerForm.pm
===================================================================
RCS file: /home/cvs/AxKit-XSP-PerForm/PerForm.pm,v
retrieving revision 1.17
retrieving revision 1.18
diff -b -u -r1.17 -r1.18
--- PerForm.pm 2003/05/23 14:04:11 1.17
+++ PerForm.pm 2003/06/16 07:59:13 1.18
@@ -1,4 +1,4 @@
-# $Id: PerForm.pm,v 1.17 2003/05/23 14:04:11 matt Exp $
+# $Id: PerForm.pm,v 1.18 2003/06/16 07:59:13 matt Exp $
package AxKit::XSP::PerForm;
@@ -59,7 +59,7 @@
Name => "hidden",
NamespaceURI => "",
Attributes => [
- { Name => "name", Value => "__submitting" },
+ { Name => "name", Value => "__submitting_$attribs{name}" },
{ Name => "value", Value => "1" },
],
};
@@ -69,14 +69,14 @@
return <<EOT
{
use vars qw(\$_form_ctxt [EMAIL PROTECTED] \%_submit_goto \%_submit_index
[EMAIL PROTECTED] \%_cancel_goto \%_cancel_index );
-local \$_form_ctxt = { Form => \$cgi->parms, Apache => \$r };
+local \$_form_ctxt = { Form => \$cgi->parms, Apache => \$r, Name =>
'$attribs{name}' };
local [EMAIL PROTECTED];
local [EMAIL PROTECTED];
local \%_submit_goto;
local \%_cancel_goto;
local \%_submit_index;
local \%_cancel_index;
-start_form_$attribs{name}(\$_form_ctxt, \$cgi->param('__submitting'))
+start_form_$attribs{name}(\$_form_ctxt,
\$cgi->param('__submitting_$attribs{name}'))
if defined \&start_form_$attribs{name};
EOT
}
@@ -119,12 +119,12 @@
return <<EOT;
my \$package = __PACKAGE__;
if (my \$sub = \$package->can('$onformend' || 'end_form_$name')) {
- \$sub->(\$_form_ctxt, \$cgi->param('__submitting'));
+ \$sub->(\$_form_ctxt, \$cgi->param('__submitting_$name'));
}
-# warn("submitting? ".(\$cgi->param('__submitting')?"yes":"no").", failed?
".(\$_form_ctxt->{_Failed}?"yes":"no"));
+# warn("submitting? ".(\$cgi->param('__submitting_$name')?"yes":"no").",
failed? ".(\$_form_ctxt->{_Failed}?"yes":"no"));
-if (\$cgi->param('__submitting')) {
+if (\$cgi->param('__submitting_$name')) {
foreach my \$cancel ([EMAIL PROTECTED]) {
if (\$cgi->param(\$cancel)) {
no strict 'refs';
@@ -140,7 +140,7 @@
}
}
-if (\$cgi->param('__submitting') && !\$_form_ctxt->{_Failed}) {
+if (\$cgi->param('__submitting_$name') && !\$_form_ctxt->{_Failed}) {
foreach my \$submit ([EMAIL PROTECTED]) {
if (\$cgi->param(\$submit)) {
no strict 'refs';
@@ -174,11 +174,12 @@
my $ctxt = ${"${package}::_form_ctxt"};
my $params = $ctxt->{Form};
+ my $fname = $ctxt->{Name};
my $error;
# validate
- if ($params->{'__submitting'}) {
+ if ($params->{"__submitting_$fname"}) {
# warn("Checking if $package can " . ($onval || "validate_${name}") .
"\n");
if (my $sub = $package->can($onval || "validate_${name}")) {
eval {
@@ -313,11 +314,12 @@
my $ctxt = ${"${package}::_form_ctxt"};
my $params = $ctxt->{Form};
+ my $fname = $ctxt->{Name};
my $error;
# validate
- if ($params->{'__submitting'}) {
+ if ($params->{"__submitting_$fname"}) {
if (my $sub = $package->can($onval || "validate_${name}")) {
eval {
$sub->($ctxt, ($params->get($name.$index))[-1], $index);
@@ -366,11 +368,12 @@
my $ctxt = ${"${package}::_form_ctxt"};
my $params = $ctxt->{Form};
+ my $fname = $ctxt->{Name};
my $error;
# validate
- if ($params->{'__submitting'}) {
+ if ($params->{"__submitting_$fname"}) {
if (my $sub = $package->can($onval || "validate_${name}")) {
my $upload =
Apache::Request->instance(Apache->request)->upload($name);
@@ -425,13 +428,14 @@
my $ctxt = ${"${package}::_form_ctxt"};
my $params = $ctxt->{Form};
+ my $fname = $ctxt->{Name};
if (!defined($value) && $package->can($onload || "load_${name}")) {
# load value if not defined
my $sub = $package->can($onload || "load_${name}");
$value = $sub->($ctxt, $value, $index);
}
- if ($params->{'__submitting'} && ($value ne
($params->get($name.$index))[-1])) {
+ if ($params->{"__submitting_$fname"} && ($value ne
($params->get($name.$index))[-1])) {
die "Someone tried to change your hidden form value!";
}
@@ -453,12 +457,13 @@
my $ctxt = ${"${package}::_form_ctxt"};
my $params = $ctxt->{Form};
+ my $fname = $ctxt->{Name};
my $error;
my ($selected, @options);
# validate
- if ($params->{'__submitting'}) {
+ if ($params->{"__submitting_$fname"}) {
if (my $sub = $package->can($onval || "validate_${name}")) {
eval {
$sub->($ctxt, [$params->get($name.$index)], $index);
@@ -472,7 +477,7 @@
elsif (my $sub = $package->can($onload || "load_${name}")) {
($selected, @options) = $sub->($ctxt, [$params->get($name.$index)],
$default, $index);
}
- elsif (!$params->{'__submitting'}) {
+ elsif (!$params->{"__submitting_$fname"}) {
$selected = [EMAIL PROTECTED];
@options = map { $$_{name}, $$_{value} } @{$option};
}
@@ -513,11 +518,12 @@
my $ctxt = ${"${package}::_form_ctxt"};
my $params = $ctxt->{Form};
+ my $fname = $ctxt->{Name};
my $error;
# validate
- if ($params->{'__submitting'}) {
+ if ($params->{"__submitting_$fname"}) {
if (my $sub = $package->can($onval || "validate_${name}")) {
eval {
$sub->($ctxt, ($params->get($name.$index))[-1], $index);
@@ -572,12 +578,13 @@
my $ctxt = ${"${package}::_form_ctxt"};
my $params = $ctxt->{Form};
+ my $fname = $ctxt->{Name};
my $error;
my ($selected, @options);
# validate
- if ($params->{'__submitting'}) {
+ if ($params->{"__submitting_$fname"}) {
if (my $sub = $package->can($onval || "validate_${name}")) {
eval {
$sub->($ctxt, ($params->get($name.$index))[-1], $index);
@@ -592,7 +599,7 @@
elsif (my $sub = $package->can($onload || "load_${name}")) {
($selected, @options) = $sub->($ctxt,
($params->get($name.$index))[-1], $default, $index);
}
- elsif (!$params->{'__submitting'}) {
+ elsif (!$params->{"__submitting_$fname"}) {
$selected = $default;
@options = map { $$_{name}, $$_{value} } @{$option};
}
@@ -632,11 +639,12 @@
my $ctxt = ${"${package}::_form_ctxt"};
my $params = $ctxt->{Form};
+ my $fname = $ctxt->{Name};
my $error;
# validate
- if ($params->{'__submitting'}) {
+ if ($params->{"__submitting_$fname"}) {
if (my $sub = $package->can($onval || "validate_${name}")) {
eval {
$sub->($ctxt, ($params->get($name.$index))[-1], $index);