I want to use a form to build a query for a search function and do not
understand the communication between the different functions. I have:
def index():
form = FORM(TABLE(TR('Field:','',
SELECT(
OPTION('title', _field = 1),
OPTION('affiliation', field = 2),
OPTION('country', field = 3),
OPTION('year', field = 4),
OPTION('research_field', field = 5),
OPTION('journal', field = 6),
OPTION('keywords', field = 7),
OPTION('author',field = 8),
OPTION('source', field= 8), field = 1)),
TR('Operator:', '',
SELECT(
OPTION('equals', operator = 1),
OPTION('starts with', operator = 2),
OPTION('contains', operator = 3), operator =1)),
TR('Value:', '',
INPUT(_searchfor = '')),
TR('', '', INPUT(_type = 'submit' ))))
if form.accepts(request.vars, session):
redirect(URL(r=request, f='list_records'))
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'Please select the field, operator and type
in the search field'
return dict(form=form)
And
def list_records():
db.sarua.id.represent = lambda value: UL(
LI(A(T('edit'),_href=URL(r=request,
c='default',f='data/update/sarua', args=str(value)))),
LI(A(T('remove'),_href=URL(r=request,
c='default',f='data/delete/sarua', args=str(value)))))
try:
ss = session.vars.searchfor.upper()
except:
ss = session.vars.searchfor
if not ss :
query = ''
elif session.vars.operator == 'equals':
query = "db.sarua.%s == %s" % (session.vars.field, ss)
elif session.vars.operator == 'starts with':
query = "db.sarua.%s >= %s" % (session.vars.field, ss)
else:
query = "db.sarua.%s.like( '%' + %s + '%')" % (session.vars.field, ss)
session.flash = query
rows = db(query).select(db.sarua.ALL,limitby = (0,25))
records = SQLTABLE(rows, headers=dict([('sarua.'+f,db.sarua[f].label)
for f in db.sarua.fields]))
return dict(records=records)
But the variables do not arrive in list_records(). I am missing
something about request vars, return(form) and session vars().
If I replace "session" in list_records with "response" I do not get
any error but also no query content.
How am I supposed to do it?
Regards
Johann
--
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en.