Thanks Dave. However I'm still having trouble.
With that script in the view google maps API load my all locations: I build a Javascript object. var locations = [ {{for event in events:}} {title: '{{=event.title}}', link: '{{=URL('default', 'mtb_tour', vars=dict(event_id=event.id))}}', location: {lat: {{=event.latitude}}, lng: {{=event. longitude}} }}, {{pass}} ]; What I would like to do it to update theses locations when the user change the map view. So when the map is in idle I would like to get all locations from the new bounds. I've not set yet the new bounds test with getBounds()as I'm still in trouble for getting data. map.addListener("idle", function(){ hideListings(); $.get("{{=URL('default', 'get_locations')}}", function( locations,status) { //alert("Data: " + locations + "\nStatus: " + status); for (var i = 0; i < locations.length; i++) { // Get the position from the location array. var position = locations[i].location; var title = locations[i].title; var link = locations[i].link; // Create a marker per location, and put into markers array. var marker = new google.maps.Marker({ position: position, title: title, link: link, animation: google.maps.Animation.DROP, icon: defaultIcon, id: i }); // Push the marker to our array of markers. markers.push(marker); // Create an onclick event to open the large infowindow at each marker. marker.addListener('click', function() { populateInfoWindow(this, largeInfowindow); }); // Two event listeners - one for mouseover, one for mouseout, // to change the colors back and forth. marker.addListener('mouseover', function() { this.setIcon(highlightedIcon); }); marker.addListener('mouseout', function() { this.setIcon(defaultIcon); }); } showListings(); }); }); Here is in my controller the get_locations function: def get_locations(): events = db(db.events.id>0).select() locations= '[' for event in events: locations += "{title: '" + event.title + "'," locations += "link: '" + URL('default', 'mtb_tour', vars=dict( event_id=event.id)) + "'," locations += "location: {lat: " + event.latitude + ", lng: " + event .longitude + "}}," locations+= ']' return locations Like that it return a string, and not a Javascript object. So the Javascript error is 'Cannot read property 'lat' of undefined' I've tried to communicate also with Json. If I've understand it's a data format like in Javascript. If I substitute in the javascript: $.get by $.getJson and in the controller: return locations by return response.json(locations) Javascript error still the same. Can someone give me a hand? Thanks. Il giorno sabato 6 agosto 2016 01:14:43 UTC+2, Dave S ha scritto: > > > > On Friday, August 5, 2016 at 2:26:51 PM UTC-7, Gael Princivalle wrote: >> >> Hello. >> >> I would like to update a javascript array by ajax, keeping the data into >> the db. >> We talk about markers data for Google maps. >> >> Here is how I load the data when the page is loaded. >> var locations = [ >> {{for event in events:}} >> {title: '{{=event.title}}', >> link: '{{=URL('default', 'show_event', vars=dict(id= >> event.id))}}', >> location: {lat: {{=event.latitude}}, lng: {{=event. >> longitude}} }}, >> {{pass}} >> ]; >> >> If the user change in a form some criteria like event date or event type, >> I would like to update the markers dynamically, without a page reload. >> >> Can I do it by ajax? >> >> Thanks. >> >> > Are you trying to update the client, or update the server? In either > case, the answer seems to be yes. In addition to the LOAD helper, there's > some conversations around here about jquery. I thought I had seen a more > direct answer recently, but I can't put my finger on it. But have a look > at > > <URLhttps://groups.google.com/d/msg/web2py/m0wrV8fK4dE/7Uhw7Vs8AwAJ> > > Massimo's discussion of Collection+JSON might be helpful, too. > <URL:https://groups.google.com/d/msg/web2py/WN9yzLIfi6M/mFEAOySVSH4J> > > /dps > > > > > > -- 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.