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.


Reply via email to