Thank you Anthony but still it is not going through!
Could you check why:
{{extend 'layout.html'}}
<script>
window.setInterval(function(){
{{i=URL('static','images/%d.jpg' %(randint(0,2)))}}
document.body.style.background = url("{{=i}}");
}, 5000);
</script>
Even this one doesn't work:
{{extend 'layout.html'}}
<script>
window.setInterval(function(){
{{f=["lightblue","pink","green"]}}
{{z=f[randint(0,2)]}}
document.body.style.background = {{=z}};
}, 5000);
</script>
On Tuesday, June 14, 2016 at 12:29:52 PM UTC+5:30, Anthony wrote:
>
> Actually, in this case, you don't really need to bother with Ajax.
> Instead, just implement the random integer generation in Javascript and use
> the random integer to generate the URL in Javascript.
>
> For future reference, though, the third argument to the ajax() function
> can be ":eval" (which tells it to evaluate the returned value as JS code)
> or a JS function (which will be passed the returned value). See the
> documentation.
>
> Anthony
>
> On Tuesday, June 14, 2016 at 1:58:32 AM UTC-4, Emmanuel Dsouza wrote:
>>
>> I was obviously waiting for your reply only.
>> Ok Anthony I got what you said. But how do I get a variable through an
>> ajax call? Ajax only updates a tag id, right?
>> How do I edit this to make it work?
>>
>> in controller:
>>
>> def index():
>> return locals()
>>
>> in model:
>>
>> def retimage():
>> from random import randint
>> i=randint(0,2)
>> return URL('static','images/%d.jpg' %(i))
>>
>> in view:
>>
>> {{extend 'layout.html'}}
>> <script>
>> window.setInterval(function(){
>> {{getimage=retimage()}}
>> document.body.style.background-image = url("{{=getimage}}");
>> }, 500);
>> </script>
>>
>>
>> I am confused on how to get a variable value though ajax calls. Please
>> help me on this.
>>
>> On Monday, June 13, 2016 at 8:46:28 PM UTC+5:30, Anthony wrote:
>>>
>>> You cannot call Python functions on the server from Javascript code
>>> running in the browser. The following line:
>>>
>>> {{getimage=retimage()}}
>>>
>>> will be called exactly once on the server *before *the HTML page is
>>> ever sent to the browser, and it will not result in anything being written
>>> into the Javascript code (if you look at the page source in the browser,
>>> you will see nothing there).
>>>
>>> If you need to retrieve images from the server without reloading the
>>> page, you must use Ajax.
>>>
>>> Anthony
>>>
>>>
>>> On Monday, June 13, 2016 at 5:30:47 AM UTC-4, Emmanuel Dsouza wrote:
>>>>
>>>> CONTROLLER:
>>>>
>>>> def retimage():
>>>>
>>>> k=["URL('static','images/1.jpg')","URL('static','images/2.jpg')","URL('static','images/3.jpg')"]
>>>> from random import randint
>>>> i=randint(0,2)
>>>> return k[i]
>>>> def index():
>>>> return locals()
>>>>
>>>> VIEW:
>>>>
>>>> {{extend 'layout.html'}}
>>>> <script>
>>>> window.setInterval(function(){
>>>> {{getimage=retimage()}}
>>>> document.body.background = url("{{=getimage}}");
>>>> }, 5000);
>>>> </script>
>>>>
>>>>
>>>>
>>>> How should I correct this?
>>>>
>>>
--
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.