in default.py I have

def search_bar():
    form = FORM('Search  ',INPUT(_name='qry'))
    if form.process().accepted:
        response.flash=''
        if form.vars.qry:
            redirect(URL('services', vars={'qry':form.vars.qry}))
    return form

and in layout.html

{{=LOAD('default','search_bar')}}

but for some reason the form is never accepted...

anh ideas ?

thanks

On Monday, 21 June 2010 17:44:50 UTC+1, mdipierro wrote:
>
> You can also do 
>
> if response.flash: response.headers['web2py-component- 
> flash']=response.flash 
>
> before return and you can keep using response.flash and session.flash 
> as usual. 
>
> On Jun 21, 10:10 am, Iceberg <iceb...@21cn.com> wrote: 
> > Wow, thanks very much for sharing this trick. I knew it could be easy 
> > and elegant! :-) 
> > 
> > On Jun20, 10:15pm, mdipierro <mdipie...@cs.depaul.edu> wrote: 
> > 
> > > Because the form is submitted and returned via ajax the usual 
> > > mechanism does not work but you can do: 
> > 
> > > def form(): 
> > >     form=SQLFORM.factory( 
> > >        Field('name', requires=IS_NOT_EMPTY())) 
> > >     if form.accepts(request.vars, session): 
> > >         response.headers['web2py-component-flash'] = 'form accepted' 
> > >     else: 
> > >         response.headers['web2py-component-flash'] = 'form has errors' 
> > >     return form 
> > 
> > > I.E. place the flash in a HTTP header and web2py will read it and 
> > > place it in the flash box. 
> > 
> > > On Jun 19, 11:23 am, Julius Minka <j...@minka.sk> wrote: 
> > 
> > > > def form(): 
> > > >     form=SQLFORM.factory( 
> > > >        Field('name', requires=IS_NOT_EMPTY())) 
> > > >     if form.accepts(request.vars, session): 
> > > >         response.flash = 'form accepted' 
> > > >     else: 
> > > >         response.flash = 'form has errors' 
> > > >     return form 
> > 
> > > > Flash is not displayed in this place, elsewhere is working. Why? 
> > > > Or, how let user know about the result of form submission? 
> > 
> > > > V Sobota, 19. jún 2010 o 00:41 -0700, mdipierro napísal(a): 
> > 
> > > > > Just do 
> > 
> > > > > def contact(): 
> > > > >      form=SQLFORM.factory(....) 
> > > > >      if form.accepts(....) 
> > > > >      return form # not dict(form=form) 
> > 
> > > > > and in layout.html 
> > 
> > > > > {{=LOAD('default','contact')}} 
> > 
> > > > > On Jun 18, 11:26 am, Julius Minka <j...@minka.sk> wrote: 
> > > > > > I need a contact form (name, address,...) on every page of a web 
> site. 
> > > > > > Thinking about putting the form into layout.html and use some 
> Ajax to 
> > > > > > send entered values to be processed by a controller. I would 
> like to 
> > > > > > avoid page reload on form submission. 
> > 
> > > > > > I found 2 possible solutions in the archive: 
> > > > > > 1.
> http://groups.google.com/group/web2py/browse_thread/thread/f162f35e4a... 
> > > > > > Is this incomplete? How process function is called? 
> > 
> > > > > > 2.
> http://groups.google.com/group/web2py/browse_thread/thread/82fad17e26... 
> > > > > > I ran application mentioned in the thread. This is probably 
> close, but 
> > > > > > complicated. 
> > 
> > > > > > What is good and simple approach to this issue? I do not have 
> much 
> > > > > > experience with Ajax. 
> > 
> > > > > > Thanks 
> > > > > > Julius

Reply via email to