perlquestion
moof1138
Hello Monks,<br><br>
I am rewriting a web form, because the old form hard coded *everything*, and I am trying to make it a bit more dynamic and flexible. The form allows folks to update stuff stored in an AoA called @champarray in the code below. I have it dynamically generating a table with all the items, but I want to make it break the rows up, so that there are not more than five tds per tr (so that the page does not get absurdly wide), somehow nothing reasonable is entering my mind when I think about this, and I think I must be missing an obvious solution. I created a $rownum var that determined how many rows to subdivide in, but then did not really know what to do with it. The code below is a little funny looking since I am still in the middle of thinking about this. In the context of this code, what is the best way to iterate by fives to fill the rows? Any other constructive criticism would also be appreciated.<br><br>
The relevant chunk:
<code>
my $productcount = 0;#index of which product we are using
print $q->table({-border=>1});
foreach (@champarray){# go through each item.
my @rows;
my @tmp_row_items = $q->p($champarray[$productcount][0]);#item 0 in array is the name of our item
my $itemnum = $#{$champarray[$productcount]};
my $rownum = ceil($itemnum / 5);#ceil is POSIX round up function
for my $i (1 .. $itemnum){
push (@tmp_row_items, $q->td($q->textfield( -name => "$champarray[$productcount][0]$i", -default => "$champarray[$productcount][$i]", -size => 25)));
}
push (@rows, $q->td(@tmp_row_items));
print $q->Tr(\@rows);
$productcount++;
}
</code>