Hi Vineet,
Could you share your successful implementation of the code?
in my controller i have the following:
def index():
msg="wait"
form_main=FORM(INPUT(_type='submit', value="RUN"),
INPUT(_name='text'),
)
if form_main.accepts(request.vars,formname='form_main'):
msg=wait(form_main.vars.text)
return dict(msg=msg)
def wait(some_text):
import time
time.sleep(10)
msg=some_text
return (msg)
in my view:
<form enctype="multipart/form-data" action="{{=URL()}}" method="post"
align="left">
<input name="_formname" type="hidden" value="form_main">
<label>Type something and click RUN: <input name="text"
requires=IS_NOT_EMPTY()></label>
<input type="submit" value="RUN">
</form>
<br/>
<div>
{{=msg}}
</div>
so basically i have a text box where user enters some text, then the
controller simply takes the text and runs a wait function before returing
the text to view.
I am trying to implement the said loading.gif during the function wait is
on-going.
Could you please advice?
I have very limited knowledge on Ajax.
On Thursday, 13 October 2011 22:18:02 UTC+8, Vineet wrote:
>
> @juanduke, @Paolo,
>
> Thanks for sharing your time & ideas.
> I successfully implemented your idea by juanduke.
> The url -- http://www.ajaxload.info/ is excellent.
>
> Regarding Paolo's code, I need to re-structure my code somewhat (which
> I will definitely do).
> Then I will implement the idea.
> In case of any query, I'll post it here.
>
> Thanks again.
> ---Vineet
>
> On Oct 13, 12:05 am, Paolo Caruccio <[email protected]>
> wrote:
> > Hi Vineet,
> >
> > as juanduke has suggested, I use the following jquery function (I put it
> in
> > web2py_ayax.js) instead of standard w2p ajax function to show a loading
> > image:
> >
> > function web2py_polling(u,s,t){
> > $('#'+t).html('<div id="loading_gif_container"><img
> > src="/static/images/loading.gif" alt="loading..." height="64" width="64"
> > /></div>');
> > ajax(u,s,t);
> >
> > }
> >
> > Of course you can set some css rules to custom
> div#loading_gif_container.
> >
> > How to use:
> > I insert at the bottom of the view :
> >
> > <script type="text/javascript" charset="utf-8">
> > //<!--
> > jQuery(document).ready(function(){
> > web2py_polling('get_output',[args],'output_target');
> > //-->
> > </script>
> >
> > ### controller ###
> >
> > def get_output():
> > the_output = "I'm the output"
> > return the_output
> >
> > You could also use a standard ajax call to a function that returns
> > web2py_polling function that, optionally, calls another action.
> >
> > For example:
> >
> > ### in the view ###
> >
> > <script type="text/javascript" charset="utf-8">
> > //<!--
> > jQuery(document).ready(function(){
> > ajax('get_output',[args],':eval');
> > //-->
> > </script>
> >
> > ### controller ###
> >
> > def get_output():
> > # make evaluation
> > return "web2py_polling('another_action',[args],'output_target');"
> >
> > def another_action():
> > the_output = "I'm the output"
> > return the_output
> >
> > Ciao.
> >
> > Paolo
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.