I added some lines and marked with #####
def byplace():
response.functionname=T('Club locator op plaats')
form=FORM('Type een plaatsnaam:',
INPUT(_type='text',_name='plaatsnaam',requires=IS_NOT_EMPTY
()),
INPUT(_type='submit'))
if form.accepts(request.vars,session):
clubs=db((db.bedrijf.id==db.adres.bedrijf)&
(db.bedrijf.id==db.bedrijfbranche.bedrijf)&\
(db.adres.plaatsnaam==request.vars.plaatsnaam)&
(db.adres.adressoort==2)&(db.bedrijfbranche.branche==2))\
.select
(db.bedrijf.id,db.bedrijf.bedrijfsnaam,db.bedrijf.ranking,db.adres.straatnaam,
\
orderby=db.bedrijf.ranking|db.bedrijf.bedrijfsnaam)
response.flash='Clubs in'
else:
clubs=[] #######################
response.flash='Formuleer een zoekopdracht'
return dict(form=form,clubs=clubs)
And the view reads like this:
<div id="leftcolumn">
{{=form}}
{{include 'functionnavigation.html'}}
</div> <!-- leftcolumn -->
<div id="mainright">
{{if response.flash:}}
<div class="flash">
{{=response.flash}}
</div> <!-- flash -->
{{pass}}
<div id="dt_example">
{{ if not clubs:}} {{################}}
<h1> No clubs </h1>
{{else:}} {{################}}
<table id="example" class="display">
<thead>
<tr>
<th>bedrijfsnaam</th>
<th>straatnaam</th>
</tr>
</thead>
<tbody>
{{for club in clubs:}}
<tr>
<td>{{=A(club.bedrijf.bedrijfsnaam,_href=URL
(r=request,f='clubdetails',
args=
[club.bedrijf.id]),_target="_blank")}}
</td>
<td>{{=club.adres.straatnaam}}</td>
</tr>
{{pass}}
</tbody>
</table>
{{pass}} {{################}}
</div> <!-- dt_example -->
</div> <!-- mainright -->
On Nov 25, 11:04 am, annet <[EMAIL PROTECTED]> wrote:
> I took up replacing my HTML forms with FORMs.
>
> My first use case is a page on which a visitor types in a city and
> submits the page by clicking a submit button (a form in the left
> column of the page). The controller function should query the database
> for leisure clubs in that city and the result should be displayed in a
> table in the right column of the same page. The function reads like
> this:
>
> def byplace():
> response.functionname=T('Club locator op plaats')
> form=FORM('Type een plaatsnaam:',
> INPUT(_type='text',_name='plaatsnaam',requires=IS_NOT_EMPTY
> ()),
> INPUT(_type='submit'))
> if form.accepts(request.vars,session):
> clubs=db((db.bedrijf.id==db.adres.bedrijf)&
> (db.bedrijf.id==db.bedrijfbranche.bedrijf)&\
> (db.adres.plaatsnaam==request.vars.plaatsnaam)&
> (db.adres.adressoort==2)&(db.bedrijfbranche.branche==2))\
> .select
> (db.bedrijf.id,db.bedrijf.bedrijfsnaam,db.bedrijf.ranking,db.adres.straatnaam,
> \
> orderby=db.bedrijf.ranking|db.bedrijf.bedrijfsnaam)
> response.flash='Clubs in'
> else:
> response.flash='Formuleer een zoekopdracht'
> return dict(form=form,clubs=clubs)
>
> And the view reads like this:
>
> <div id="leftcolumn">
> {{=form}}
> {{include 'functionnavigation.html'}}
> </div> <!-- leftcolumn -->
> <div id="mainright">
> {{if response.flash:}}
> <div class="flash">
> {{=response.flash}}
> </div> <!-- flash -->
> {{pass}}
> <div id="dt_example">
> <table id="example" class="display">
> <thead>
> <tr>
> <th>bedrijfsnaam</th>
> <th>straatnaam</th>
> </tr>
> </thead>
> <tbody>
> {{for club in clubs:}}
> <tr>
> <td>{{=A(club.bedrijf.bedrijfsnaam,_href=URL
> (r=request,f='clubdetails',
> args=[club.bedrijf.id]),_target="_blank")}}
> </td>
> <td>{{=club.adres.straatnaam}}</td>
> </tr>
> {{pass}}
> </tbody>
> </table>
> </div> <!-- dt_example -->
> </div> <!-- mainright -->
>
> Exposing the function results in the following error:
>
> Traceback (most recent call last):
> File "/Library/Python/2.5/site-packages/web2py/gluon/restricted.py",
> line 62, in restricted
> exec ccode in environment
> File "/Library/Python/2.5/site-packages/web2py/applications/b2c/
> controllers/clubs.py", line 60, in <module>
> File "/Library/Python/2.5/site-packages/web2py/gluon/globals.py",
> line 55, in <lambda>
> self._caller=lambda f: f()
> File "/Library/Python/2.5/site-packages/web2py/applications/b2c/
> controllers/clubs.py", line 26, in byplace
> return dict(form=form,clubs=clubs)
> UnboundLocalError: local variable 'clubs' referenced before assignment
>
> I do understand why it does but I do not know how to solve this
> problem. I hope one of you does.
>
> Best regards,
>
> Annet.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" 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
-~----------~----~----~----~------~----~------~--~---