Is there anyway to make a button value different then the Display value?

Reason needed:
I am dynamically generating a list of names from a database. Each name has a checkbox next to it and an edit button next to each name. So I could check 5 names, click delete and they are all deleted. Or I could click edit next to name 1 and it would edit the name. However because I can't nest a form in a form, I have named all the buttons the same and process out what does what in the POST information. This means that the hidden fields associated with each line (or name) are replaced by whatever was dynamically generated last, so it always edits person 1 no matter which button I press. I am looking for some way to pass a value (without a hidden field as they won't work in dynamic generation). I thought that if you could use the "value" of the submit button, but I don't want the user seeing these numbers, I would rather them just see the words edit.

Simplified:

Main page:
|CHECKBOX| FirstName1 LastName1 |EDIT BUTTON|
****HIDDEN USERID=Name1****

|CHECKBOX| FirstName2 LastName2 |EDIT BUTTON|
****HIDDEN USERID=Name2****
|DELETE SELECTED|

Process page:
If "Delete Selected" then delete checkbox[]
If "edit" then edit USERID (which is always the last one generated)