The function location isn't working anymore now. :'( On Saturday, February 20, 2016 at 11:16:05 PM UTC+5:30, Anthony wrote: > > Same problem -- the URL() function is Python code executed on the server, > but you are attempting to pass in Javascript variables. Should be: > > ajax('{{=URL('default', 'location')}}' + '?lat=' + visitor_lat + '&lon=' + > visitor_lon, [], ':eval'); > > Notice that you must use Javascript in order to construct the URL based on > Javascript variables. > > Anthony > > On Saturday, February 20, 2016 at 12:29:27 PM UTC-5, Rgb Aston wrote: >> >> 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=request.vars.lat >> lon=request.vars.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 <javascript:>', >> '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.