I did try to omit pieces that seemed irrelevant, so I didn't include how the parameters were being set. Several parameters are being set through classical forms, e.g.
print $q->start_form(),
'Please choose an action: ',
$q->popup_menu( -name => 'exec', -values => ['add', 'list', 'search'
+] ),
$q->popup_menu( -name => 'table', -values => ['users', 'VPN', 'VMacc
+ounts', 'supporting tables'] );
This orderby and desc fields are not -- they are being manually set via
print $q->h2($subtitle), "\n<table border>\n\t<tr><th>ID</th><th>Type
+";
foreach (my $i=1; $i<=$#USER_FIELDS; $i++) {
my $flags = '?exec=list&table=users&orderby='.$i;
if ($i == $index) {
$flags .= '&desc=1';
}
print "</th><th><a href=\"$flags\">$LABELS{$USER_FIELDS[$i]}</a>";
}
print "</th></tr>\n";
(The titles on the table lets you sort by that field, and if you click on an already-sorted field it reverses it.)
I didn't think that relevant, because its all upstream: at the invocation I'm looking at, the value of orderby is being shown in the $q->Dump output; yet its vanished by the time the first subroutine is called. That is, I've got a print statement, a couple of local assignments, two if's that call listUsers(), a little DB work at the top of sub listusers, and then orderby has vanished. I am assuming there is some sort of global variable passing between CGI instances that I don't know about? ... well, I'm confused.
|