Thanks. I tried that no luck; here is the edited code:

var country_id = '';
var country_name = '';

function createMarker(map, countries) {

    for (var i = 0; i < countries.length; i++) {

        if(countries[i].latitude != null && countries[i].longitude !=
null) {

            var myLatlng = new
google.maps.LatLng(countries[i].latitude,countries[i].longitude);
            var marker = new google.maps.Marker({
                position: myLatlng,
                map: map,
                icon: '/images/map-dot.png',
                title: countries[i].name
           });

           country_id = countries[i].id;
           country_name = countries[i].name;
           google.maps.event.addListener(marker, 'click', function() {
                getData(country_id, country_name);
            });
        }
    }


}

On Jul 30, 1:47 pm, Dmitry Mishchenko <dmitry.mishche...@gmail.com>
wrote:
> Hey,
> Id is insufficiently scoped in regards to the click event, make it
> global
>
> On Jul 30, 9:29 am, browndash <mabuz...@gmail.com> wrote:
>
> > I am creating a custom map that shows all the countries and when you
> > click on a marker I would like to use Ajax to retrieve the information
> > for that country. When I first load the map, this is what I get from
> > the server:
>
> > .....
> > #
> > {
>
> >     * id: "11"
> >     * name: "Algeria"
> >     * longitude: "1.6596260"
> >     * latitude: "28.0338860"
> >     * type: "country"
> >     * parent: "1"
>
> > }
>
> > #
> > -
> > {
>
> >     * id: "12"
> >     * name: "Angola"
> >     * longitude: "17.8738870"
> >     * latitude: "-11.2026920"
> >     * type: "country"
> >     * parent: "1"
>
> > }
>
> > #
> > -
> > {
>
> >     * id: "13"
> >     * name: "Benin"
> >     * longitude: "2.3158340"
> >     * latitude: "9.3076900"
> >     * type: "country"
> >     * parent: "1"
>
> > }
>
> > .........
>
> > And here is my code to create the markers from that JSON :
>
> > function createMarker(map, countries) {
>
> >     for (var i = 0; i < countries.length; i++) {
>
> >         if(countries[i].latitude != null && countries[i].longitude !=
> > null) {
>
> >             var myLatlng = new
> > google.maps.LatLng(countries[i].latitude,countries[i].longitude);
> >             var marker = new google.maps.Marker({
> >                 position: myLatlng,
> >                 map: map,
> >                 icon: '/images/map-dot.png',
> >                 title: countries[i].name
> >            });
>
> >            var id = countries[i].id;
> >            google.maps.event.addListener(marker, 'click', function() {
> >                 getData(id);
> >             });
> >         }
> >     }
>
> > }
>
> > function getData(id) {
> >    alert('Get data for this country:'+id);}
>
> > ========================================================================
>
> > When I click on the marker this ID is always 230 (which is the last id
> > in my country list). What am I doing wrong here? How can I have a
> > unique argument for each marker when it calls the getData() function.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Maps JavaScript API v3" group.
To post to this group, send email to google-maps-js-api...@googlegroups.com.
To unsubscribe from this group, send email to 
google-maps-js-api-v3+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-maps-js-api-v3?hl=en.

Reply via email to