Thanks so much for your help. This makes a lot of sense to me.
Maureen
fliptop wrote:
if you set up your form so that each record has the same <input> params,
then they should be submitted in order and you can treat each one as an
array. for example (untested, and using limited html):
Name: <input type="text" name="name">
Address: <input type="text" name="address">
Phone: <input type="text" name="phone">
<input type="hidden" name="id" value="1">
<br>
Name: <input type="text" name="name">
Address: <input type="text" name="address">
Phone: <input type="text" name="phone">
<input type="hidden" name="id" value="2">
# and in your cgi:
my $dbh = put your db handle code here;
my $q = new CGI;
my @ids = $q->param('id');
my @names = $q->param('name');
my @addresses = $q->param('address');
my @phone = $q->param('phone');
my $sth = $dbh->prepare('update table set name=?, address=?, phone=?
where id=?');
for (my $i = 0; $i < scalar(@ids); $i++) {
$sth->execute($names[$i], $addresses[$i], $phone[$i], $ids[$i]); }
$sth->finish();
$dbh->disconnect;
of course, you'll need to do some validation to make sure values were
submitted and are acceptable. otherwise, scalar(@ids) may not be the
same as scalar(@addresses) or scalar(@phone) or scalar(@names). you'll
probably want to check to make sure each value exists before trying to
update it.