-name => '$obj' This won't do what you intent. Single quotes (') don't interpolate, so the name will be '$obj', not the value of $obj. Either use double quotes or simply drop the quotes altogether: -name => $obj
$html .= start_form I don't think this belongs here. You don't want to start a new form inside another form (the one created with add_record and build_record_page).
If it still doesn't work, check out the html your code generates. Either with a browser (every browser has a function to show you the html) or something like this:
open(BUG,'>>/tmp/testoutput');
print BUG $html
close(BUG);
Then you can analyze the html to see what is wrong or missing or too much.
Sorry, I didn't read your code from beginning to end. So I don't have the least idea what parse does or should do. It probably is easier if you tell me (or start a new thread if that question is independent of your dropdown menue question).
|