as I understand, as 'results' page you mean just another *browser *page, if 
so - pass to your FORM attr _target='_blank'
  FORM(... _target='_blank') - isn't tested but should work, because  this: 
 A(_href='...', _target='_blank') - works fine


On Saturday, January 21, 2017 at 3:42:22 AM UTC+3, Reed Crowe wrote:
>
> New to web2py. What I am doing should be very simple, but can not get it 
> to work. 
>
> I have a simple search form:
> def search_form():
>     results=None
>     headers=['Jira Id', 'Customer Name', 'Device Type', 'Serial Number', 
> 'Driver Version', 'Firmware Version', 'Sector Size', 'Free LEBs', 'Bytes 
> Read', 'Bytes Written', 'OS']
>     form=FORM(TABLE(TR("Search By Jira 
> Id",INPUT(_type="text",_name="jira_id", default=None)),
>                     TR("Search By Customer 
> Name",INPUT(_type="text",_name="customer_name", default=None)),
>                     TR("Search By Device 
> Type",INPUT(_type="text",_name="device_type", default=None)),
>                     TR("",INPUT(_type="submit",_value="SUBMIT"))))
>     if form.accepts(request,session):
>         response.flash="form accepted"
>         if form.vars:
>             jira_id = request.vars.jira_id
>             customer_name = request.vars.customer_name
>             device_type = request.vars.device_type
>         query = ((db.bugreport.id == db.iomemory.bug_report) &
>        (db.iomemory.bug_report == db.system.bug_report) &
>        (db.bugreport.id == db.system.bug_report))
>         if jira_id:
>             query &= db.bugreport.jira_id == jira_id
>         if customer_name:
>             query &= db.bugreport.customer_name == customer_name
>         if device_type:
>               query &= db.iomemory.device_type == device_type
>         try:
>             results = db(query).select(db.bugreport.jira_id,
>                                         db.bugreport.customer_name,
>                                         db.iomemory.device_type,
>                                         db.iomemory.serial_number,
>                                         db.iomemory.driver_version,
>                                         db.iomemory.firmware_version,
>                                         db.iomemory.sector_size,
>                                         db.iomemory.free_lebs,
>                                         db.iomemory.bytes_read,
>                                         db.iomemory.bytes_written,
>                                         db.system.os,
>                                         db.system.kernel_version,
>                                         db.system.cpu_info,
>                                         db.system.mem_info,
>                                         db.system.num_cpus,
>                                         db.system.raid_type,
>                                         db.system.filesystem)
>         except Exception, e:
>             redirect(URL('error', vars=dict(e=e)))
>     return dict(form=form, results=results)
>
> And this works OK, but I don't want the results to show up on the same 
> form page. I want it to display on a 'results' page.
>
> I tried to put the db query in another function and called it like this 
> from the form:
>
> def search_form():
>     #headers=['Jira Id', 'Customer Name', 'Device Type', 'Serial Number', 
> 'Driver Version', 'Firmware Version', 'Sector Size', 'Free LEBs', 'Bytes 
> Read', 'Bytes Written', 'OS']
>     form=FORM(TABLE(TR("Search By Jira 
> Id",INPUT(_type="text",_name="jira_id", default=None)),
>                     TR("Search By Customer 
> Name",INPUT(_type="text",_name="customer_name", default=None)),
>                     TR("Search By Device 
> Type",INPUT(_type="text",_name="device_type", default=None)),
>                     TR("",INPUT(_type="submit",_value="SUBMIT"))))
>     if form.accepts(request,session):
>         response.flash="form accepted"
>         if form.vars:
>             jira_id = request.vars.jira_id
>             customer_name = request.vars.customer_name
>             device_type = request.vars.device_type
>             search_results(jira_id, customer_name, device_type) 
> *******HERE********
>     elif form.errors:
>         response.flash="form is invalid"
>     else:
>         response.flash="please fill in the form"
>     return dict(form=form)
>
> and
>
> def search_results(jira_id, customer_name, device_type):
>     query = ((db.bugreport.id == db.iomemory.bug_report) &
>              (db.iomemory.bug_report == db.system.bug_report) &
>              (db.bugreport.id == db.system.bug_report))
>     if jira_id:
>         query &= db.bugreport.jira_id == jira_id
>     if customer_name:
>         query &= db.bugreport.customer_name == customer_name
>     if device_type:
>           query &= db.iomemory.device_type == device_type
>     results = None
>     results = db(query).select(db.bugreport.jira_id,
>                                 db.bugreport.customer_name,
>                                 db.iomemory.device_type,
>                                 db.iomemory.serial_number,
>                                 db.iomemory.driver_version,
>                                 db.iomemory.firmware_version,
>                                 db.iomemory.sector_size,
>                                 db.iomemory.free_lebs,
>                                 db.iomemory.bytes_read,
>                                 db.iomemory.bytes_written,
>                                 db.system.os,
>                                 db.system.kernel_version,
>                                 db.system.cpu_info,
>                                 db.system.mem_info,
>                                 db.system.num_cpus,
>                                 db.system.raid_type,
>                                 db.system.filesystem)
>     redirect(URL('search', var = dict(results=results))
>
> But I can't get the redirect or a return to work. What is the best way to 
> do this? Can I just return the results data and have the 'search.html' 
> display it or is a redirect what I want? 
> I can't seem to find a simple example of displaying the query data on a 
> different page. 
> I know this has to be simple, but since I am new I just don't get it.
>

-- 
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.

Reply via email to