Dear Monks,
I'm working on a small admin console,and am stuck on a part where users can update db entries using simple forms. Basically on a single page i have more than one form,(using a
while loop to generate as many forms as there're entries in the db). With each iteration i have auto-incrementing
$_++, that changes the name of the form to say
form1,form2,form3 and so forth. Each form has a
'Delete' and
'Update' buttons. The trouble is no matter which
'Update' button of which form is pressed
the result is one - only the first form is updated. i guess it would work if i auto-increment the names of the
'Update' buttons instead, but then i'm unsure of how to get the
param for each different button name?!
this is the code that generates the forms:
while ( @row = $sth->fetchrow_array())
{
$form++;
print "<form name=\"$form\" method=\"post\" action=\"su
+bmit_edited.pl\">";
print $q->state_field;
print<<HTML;
<table width="80%" border="0" cellpadding="0" align="center" class="pr
+operty">
<tr>
<td width="22%" valign="top"><p valign="center">
<img src="$row[9]" border="1"><br>
<strong>Postal Code:</strong><br><input name="zip" type="textfield" si
+ze="30" class="text_field" value="$row[5]"></p>
</td>
<td width="78%">
...
<input type="hidden" name="hidden_field_name" value="$row[0]">
<input type="submit" name="update" value="Update">
<input type="submit" name="delete" value="Delete">
</td>
</tr>
</table>
<br>
HTML
and this is the code that should handle the
params:
if ($q->param("update")) {
my $sql = "UPDATE property SET address_1= ?,address_2= ?, county=
+?, city= ?, zip= ?, description= ?, bedroom= ? WHERE property_id= ?";
my $sth = $dbh->prepare($sql) or die $dbh->errstr;
$sth->execute($address_1, $address_2, $county, $city, $zip, $d
+escription, $bedroom,$property_id) or die $dbh->errstr;
$dbh->disconnect;
print $q->header(),
$q->start_html("Cool "),
$q->p("that worked fine\n $sql"),
$q->end_html;
}else {
print $q->header(),
$q->start_html("ERROR"),
$q->p("life sucks dude"),
$q->end_html;
exit;
}
PS. Is there a more efficient way of executing the
$sth->execute, i tried putting the vars into an
@_ and the execute it like so
$sth->execute(@_[0..7]). That doesnt give me an error but doesnt execute either!
many thanks
r_mehmed
novice
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.