Thank you Anthony. I tried fixing it this way but it didn't work either.

Instead of:
{{session.lat=visitor_lat}}
{{session.lon=visitor_lon }}
I put:
ajax('{{=URL('default', 'location', vars=dict(lat=visitor_lat, 
lon=visitor_lon))}}', [], ':eval');

and my function location stays as:

def location(lat, lon):
    device=str(request.user_agent)
    start=device.find("HTTP_USER_AGENT") + 18
    end=device.find("HTTP_CONNECTION") - 3
    session.p=mail.send('smm...@gmail.com',
                  'Someone just checked your ePortfolio',
                  message='<html><style></style><body><h1 
style="background-color:lightblue;display:inline" >Hi!</h1><br><div 
style="width:500px;height:100px;background-color:pink;opacity:0.8"><h3 
style="font-size:1em">you have a new visitor from ip address: 
%s</h3><h3>from latitude: %s and longitude: %s<h3>with device: %s</h3> 
</div></body></html>' %(str(request.client), str(lat), str(lon), 
device[start:end] ))



however now it says:
<type 'exceptions.NameError'> name 'visitor_lat' is not defined


On Saturday, February 20, 2016 at 10:28:41 PM UTC+5:30, Anthony wrote:
>
> You cannot combine Python and Javascript. The Python code is executed on 
> the server *before* the HTML page is returned to the browser, and the 
> Javascript is executed later in the browser. If you need to put something 
> in the session from Javascript, you would have to pass the relevant data to 
> web2py via an Ajax call and have the called function write the data to the 
> session.
>
> Anthony
>
> On Saturday, February 20, 2016 at 11:40:50 AM UTC-5, Rgb Aston wrote:
>>
>>  <script type="text/javascript" src="http://www.google.com/jsapi?key=
>> <YOUR_GOOGLE_API_KEY>"></script>
>>     <script type="text/javascript">
>>         if(google.loader.ClientLocation)
>>         {
>>             visitor_lat = google.loader.ClientLocation.latitude;
>>             visitor_lon = google.loader.ClientLocation.longitude;
>>             visitor_city = google.loader.ClientLocation.address.city;
>>             visitor_region = google.loader.ClientLocation.address.region;
>>             visitor_country = 
>> google.loader.ClientLocation.address.country;
>>             visitor_countrycode = 
>> google.loader.ClientLocation.address.country_code;
>>             document.getElementById('yourinfo').innerHTML = '<p>Lat/Lon: 
>> ' + visitor_lat + ' / ' + visitor_lon + '</p><p>Location: ' + visitor_city 
>> + ', ' + visitor_region + ', ' + visitor_country + ' (' + 
>> visitor_countrycode + ')</p>';
>>             {{session.lat=visitor_lat}}
>>             {{session.lon=visitor_lon }}
>>         }
>>         else
>>         {
>>             document.getElementById('yourinfo').innerHTML = 
>> '<p>Whoops!</p>';
>>         }
>>     </script>
>>         
>>         
>> error:
>>
>> <type 'exceptions.NameError'> name 'visitor_lat' is not defined
>>
>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to