I think your compilation error comes from the fact that in Python you cannot have a variable name starting with a number. Try changing the field names of Evaluation table to <letter>_1_1A...
Then remember that only one form can be submitted in HTML, so your controler will be called only for one submitted form, not all. Le samedi 2 mars 2013 07:26:18 UTC+1, Anthony Bond a écrit : > I've been working with web2py for about two months now. I've figured out how > to do a lot of awesome things with it; however, the problem I'm having now > has me stumped. > > > I'm working on an application that allows a user to submit a self-evaluation, > based on criteria that the user will find on a page. I have a table with 33 > rows of of criteria. The table contains a column which hosts the criteria, > pre-formatted in HTML. Each HTML section contains a table the gives the > users the criteria for each of six levels - these individual tables are > almost large enough to take up the entire content section of the webpage, so > I've placed them all in a jQuery accordion. Below each table, I've placed a > drop down list, where the user can select what criteria they feel as though > they've met. I've added a small screenshot to show the look and feel I'm > trying to achieve (and currently have). > > > The problem I'm having is getting the values of those drop down lists back > from the database. Currently, I iterate through the table containing the > HTML using a for loop, tacking a drop down list at the end of each. Right > now, I'm unable to get the data back from the page. Here is my code: > > > > def Take_Eval(): > > user = db(db.Person.auth_userUserId == > auth.user.id).select().first().PersonId > > table = db(db.PageContent.ContentId > 0).select() > > submit = INPUT(_name='submit', _type='submit') > > formlist = [] > > > > for row in table: > > newForm = FORM(H2(row['ContentDescription'], _style="padding-left: > 10px;"), > > DIV(XML(row.ContentHTML), BR(), P(SELECT(OPTGROUP(OPTION('Does not > Attempt', _value=0), OPTION('Developing', _value=1), OPTION('Progressing', > _value=2), OPTION('Established', _value=3), OPTION('Advanced', _value=4), > OPTION('Master', _value=5)), _id=row['QuestionNumber']), _style='text-align: > center;'))) > > formlist.append(newForm) > > > > for form in formlist: > > if form.accepts(request, session): > > response.flash = 'Profile Saved Successfully on ' + > str(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) > > #db.Evaluation.insert(PersonBeingEvaluated, PersonEvaluating, EvalDate > ,1_1A ,1_1B ,1_2 ,1_3 ,1_4 , 1_5, 1_6, 2_1, 2_2A , 2_2B, 2_3A ,2_3B ,2_4 ,2_5 > ,3_1 , 3_2 , 3_3, 3_4, 3_5A, 3_5B, 3_6, 3_7, 3_8, 3_9A, 3_9B, 3_9C, 4_1, 4_2, > 4_3A, 4_3B, 4_4, BeliefsScore, CharacterScore) > > > > redirect(URL('default', 'index')) > > elif form.errors: > > response.flash = 'Profile could not be submitted. Please try > again later. ' > > > > db.Evaluation.insert(PersonBeingEvaluated=user, PersonEvaluating=0, > EvalDate=datetime.now(), 1_1A = formlist[0].vars.1_1A, 1_1B = > formlist[1].vars.1_1B, 1_2 = formlist[2].vars.1_2, 1_3 = > formlist[3].vars.1_3, 1_4 = formlist[4].vars.1_4, 1_5 = formlist[5].vars.1_5, > 1_6 = formlist[6].vars.1_6, 2_1 = formlist[7].vars.2_1, 2_2A = > formlist[8].vars.2_2A, 2_2B = formlist[9].vars.2_2B, 2_3A = > formlist[10].vars.2_3A, 2_3B = formlist[11].vars.2_3B, 2_4 = > formlist[12].vars.2_4, 2_5 = formlist[13].vars.2_5, 3_1 = > formlist[14].vars.3_1, 3_2 = formlist[15].vars.3_2, 3_3 = > formlist[16].vars.3_3, 3_4 = formlist[17].vars.3_4, 3_5A = > formlist[18].vars.3_5A, 3_5B = formlist[19].vars.3_5B, 3_6 = > formlist[20].vars.3_6, 3_7 = formlist[21].vars.3_7, 3_8 = > formlist[22].vars.3_8, 3_9A = formlist[23].vars.3_9A, 3_9B = > formlist[24].vars.3_9B, 3_9C = formlist[25].vars.3_9C, 4_1 = > formlist[26].vars.4_1, 4_2 = formlist[27].vars.4_2, 4_3A = > formlist[28].vars.4_3A, 4_3B = formlist[29].vars.4_3B, 4_4 = > formlist[30].vars.4_4, BeliefsScore = formlist[31].vars.BeliefsScore, > CharacterScore = formlist[32].vars.CharacterScore) > > > > return locals() > > > The code is not letting me compile due to a syntax error on the area I've > highlighted above. I'm okay with not using a form, or a bunch of forms, as > long as I can get the values from the drop down list back to the controller > when the submit button is clicked. I originally looped through the table in > the view to make the display. Each drop down has a unique name that I'd be > able to access in the controller, but I haven't been able to figure out how > to do that only after post back. I appreciate any guidance that could be > given. Thanks! -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.