On May 28, 2004, at 3:50 AM, Ford, Mike [LSS] wrote:
On 28 May 2004 04:47, Albert Padley wrote:
I feel I'm so close.
I have a form with multiple database records with a checkbox to indicate which records to update set up like so:
$name = "ed[" . $row['id'] . "]";
<input type=\"checkbox\" name=\"" . $name . "\" value=\"Y\">
Each text input is set up like so:
<input type=\text\" name=\"fname[]\" value=\"" . $row['fname'] . "\">
On the processing page I am doing this:
foreach($ed as $id=>$val){ $query = "UPDATE ref_events_reg SET fname = '$fname' WHERE id = '{$id}'";
I am looping through the correct records, but every field is being updated to "Array".
What tweak do I need to make?
I'd make two tweaks, actually. First and most obviously, you're not selecting *which* fname field to pass to your update query, so this needs to be:
$query = "UPDATE ref_events_reg SET fname = '{$fname[$id]}' WHERE id = '{$id}'";
(By putting just $fname there, you are telling PHP to insert the string representation of the whole array -- and the string representation of any array is, er, exactly "Array"! ;)
This change may give you a clue to my other tweak -- I'd explicitly set the indexes of all the fname[] fields to be sure they sync correctly to the related check box, thus:
<input type=\"checkbox\" name=\"ed[{$row['id']}]\" value=\"Y\">
<input type=\"text\" name=\"fname[{$row['id']}]\" value=\"{$row['fname']}\">
Cheers!
Mike
Mike,
Thanks for the tweaks. That solved the problem.
I had actually tried something like that, but obviously didn't have all the parts working together at the same time.
Thanks again.
Albert Padley
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php