[web2py] Re: multiple functions in one view
Hi, I try to do exactly the same and have the following in my app: controller: def index(): response.js = '$.web2py.component(%s, target=graph1);' % URL('default', 'graph1.load') index.html: div id=graph1 style=width: 400px; height: 400px; margin: 0 auto /div graph1.load contains a graph in pure JS What am I overlooking? KInd regards On Tuesday, January 21, 2014 5:15:17 PM UTC+1, Anthony wrote: You could put both the form and the grid in ajax components. When the form is submitted, it could send back a JS command to load the grid: In index.html: {{=LOAD('default', 'tracker_form.load', ajax=True)}} div id='content_grid'/div Change your two existing views to a .load extension (not required, but done by convention for component views), and remove the {{extend 'layout.html'}} from each. In tracker_form, do: if form.process().accepted: response.js = '$.web2py.component(%s, target=content_grid);' % URL('default', 'show_form.load') response.flash = 'Submitted Successfully!' Whenever the form is submitted and accepted, it will reload the grid in the content_grid div. Anthony On Tuesday, January 21, 2014 10:37:04 AM UTC-5, En Ware wrote: Hello, I am trying to figure out how to call more then function per view. I would like to be to have users fill out a form and and then as soon as they submit show the results sort of like SQLFORM. I also want to make the grid editable so that users can hide rows and columns. Thanks in Advance. #controller default.py def index(): return dict() def tracker_form(): record = db.content(request.args(0)) show_record = request.args(0) form = SQLFORM(db.content, record, show_record) if form.process().accepted: response.flash = 'Submitted Successfully!' #response.view = 'http://127.0.0.1:8000/WnD/default/show_form' #return dict(show_record=show_record) elif form.errors: response.flash = 'Form is not correct; please correct and submit again' else: response.flash = 'Please fill out the damn form' return dict(form=form) def show_form(): #rows = db().select(db.content.ALL) return dict(grid=SQLFORM.grid(db.content)) #views #tracker_form.html {{extend 'layout.html'}} h4centerTracking/center/h4 {{=form}} {{=BEAUTIFY(request.vars)}} #show_form.html {{extend 'layout.html'}} h4centerRecords processed/center/h4 {{=grid}} a href=http://127.0.0.1:8000/WnD/default/tracker_form;Back/a #index.html {{extend 'layout.html'}} titleWatch and Defend/title h4 Current customers: /h4 H4 a href=http://127.0.0.1:8000/WnD/default/tracker_formcenterTracker Monitoring click on the link/a/center /H4 -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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/d/optout.
[web2py] Re: multiple functions in one view
You could put both the form and the grid in ajax components. When the form is submitted, it could send back a JS command to load the grid: In index.html: {{=LOAD('default', 'tracker_form.load', ajax=True)}} div id='content_grid'/div Change your two existing views to a .load extension (not required, but done by convention for component views), and remove the {{extend 'layout.html'}} from each. In tracker_form, do: if form.process().accepted: response.js = '$.web2py.component(%s, target=content_grid);' %URL ('default', 'show_form.load') response.flash = 'Submitted Successfully!' Whenever the form is submitted and accepted, it will reload the grid in the content_grid div. Anthony On Tuesday, January 21, 2014 10:37:04 AM UTC-5, En Ware wrote: Hello, I am trying to figure out how to call more then function per view. I would like to be to have users fill out a form and and then as soon as they submit show the results sort of like SQLFORM. I also want to make the grid editable so that users can hide rows and columns. Thanks in Advance. #controller default.py def index(): return dict() def tracker_form(): record = db.content(request.args(0)) show_record = request.args(0) form = SQLFORM(db.content, record, show_record) if form.process().accepted: response.flash = 'Submitted Successfully!' #response.view = 'http://127.0.0.1:8000/WnD/default/show_form' #return dict(show_record=show_record) elif form.errors: response.flash = 'Form is not correct; please correct and submit again' else: response.flash = 'Please fill out the damn form' return dict(form=form) def show_form(): #rows = db().select(db.content.ALL) return dict(grid=SQLFORM.grid(db.content)) #views #tracker_form.html {{extend 'layout.html'}} h4centerTracking/center/h4 {{=form}} {{=BEAUTIFY(request.vars)}} #show_form.html {{extend 'layout.html'}} h4centerRecords processed/center/h4 {{=grid}} a href=http://127.0.0.1:8000/WnD/default/tracker_form;Back/a #index.html {{extend 'layout.html'}} titleWatch and Defend/title h4 Current customers: /h4 H4 a href=http://127.0.0.1:8000/WnD/default/tracker_formcenterTracker Monitoring click on the link/a/center /H4 -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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.
[web2py] Re: multiple functions in one view
Thank you so much; this awesome I appreciate your time. On Tuesday, January 21, 2014 9:37:04 AM UTC-6, En Ware wrote: Hello, I am trying to figure out how to call more then function per view. I would like to be to have users fill out a form and and then as soon as they submit show the results sort of like SQLFORM. I also want to make the grid editable so that users can hide rows and columns. Thanks in Advance. #controller default.py def index(): return dict() def tracker_form(): record = db.content(request.args(0)) show_record = request.args(0) form = SQLFORM(db.content, record, show_record) if form.process().accepted: response.flash = 'Submitted Successfully!' #response.view = 'http://127.0.0.1:8000/WnD/default/show_form' #return dict(show_record=show_record) elif form.errors: response.flash = 'Form is not correct; please correct and submit again' else: response.flash = 'Please fill out the damn form' return dict(form=form) def show_form(): #rows = db().select(db.content.ALL) return dict(grid=SQLFORM.grid(db.content)) #views #tracker_form.html {{extend 'layout.html'}} h4centerTracking/center/h4 {{=form}} {{=BEAUTIFY(request.vars)}} #show_form.html {{extend 'layout.html'}} h4centerRecords processed/center/h4 {{=grid}} a href=http://127.0.0.1:8000/WnD/default/tracker_form;Back/a #index.html {{extend 'layout.html'}} titleWatch and Defend/title h4 Current customers: /h4 H4 a href=http://127.0.0.1:8000/WnD/default/tracker_formcenterTracker Monitoring click on the link/a/center /H4 -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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.