I figured this out later on - I've adjusted all the variables and field names to start with a Q. Thanks.
On Saturday, March 2, 2013 5:57:30 PM UTC-5, Arglanir wrote: > > 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.