编写这个jQuery ajax调用的正确方法是什么

时间:2014-11-04 10:02:24

标签: jquery ajax google-maps map polyline

我正在尝试设置一个谷歌地图,通过ajax从数据库中提取GPS坐标,并在地图上绘制一条多边形线。

我删除ajax调用时只使用coord(lat_start,lng_start)和coord(lat_end,lng_end),它在lat_start,lng_start和lat_end,lng_end之间画一条线,但是当我尝试包装它时在ajax调用中,它表示存在错误。

如果可能,我想了解如何正确编写此块。

SyntaxError:语法错误'for(i = 0; i< arr.length; i ++){'

由于

//The vars are posted from hidden form values
var lat_start = $(this).parent('.plot_trip').find('.lat_start').val();
var lng_start = $(this).parent('.plot_trip').find('.lng_start').val();
var lat_end = $(this).parent('.plot_trip').find('.lat_end').val();
var lng_end = $(this).parent('.plot_trip').find('.lng_end').val();
var trip_id = $(this).parent('.plot_trip').find('.trip_id').val();

$.ajax({

    type: "GET",
    cache: false,       
    url: '?route=waypoints/get_by_trip_id',
    data: {trip_id:trip_id},
    success: function(data) {
        // have recieved
        alert('recieved data');     
        // set array var                
        var arr = data;     
        // set up google map polyline           
        polyline(map, [ 
            //set start gps coordinates 
            coord(lat_start,lng_start),
            //get and set all gps coordinates from array
            for(i = 0; i < arr.length; i++) { // Error shown here

                coord(arr[i].lat,arr[i].lng),

            }
            //set end gps coordinates
            coord(lat_end,lng_end),

        ]);                     
    }
});

1 个答案:

答案 0 :(得分:0)

好的,所以终于解决了!

发布我的答案,这可能是错误的但是有效。

我需要设置一个数组变量并将点推送到它。

代码已完全注释,但如果您有任何疑问,请询问:)

//The vars are posted from hidden form values
var lat_start = $(this).parent('.plot_trip').find('.lat_start').val();
var lng_start = $(this).parent('.plot_trip').find('.lng_start').val();
var lat_end = $(this).parent('.plot_trip').find('.lat_end').val();
var lng_end = $(this).parent('.plot_trip').find('.lng_end').val();
var trip_id = $(this).parent('.plot_trip').find('.trip_id').val();


$.ajax({

    type: "GET",
    cache: false,       
    url: '?route=waypoints/get_by_trip_id',
    dataType:"json",
    data: {trip_id:trip_id},
    success: function(data) {
        // have recieved
        alert('recieved data');
        // Set up points array variable
        var points = [];
        // set start gps position variable
        var start = coord(lat_start,lng_start);
        //push start gps position to points array variable
        points.push(start);
        //get all gps coordinates from array
        for(i = 0; i < data.length; i++) {
            // set point variable
            var point = coord(data[i].lat,data[i].lng);
            //push point to points array variable 
            points.push(point);
        }
        // set end gps position
        var end = coord(lat_end,lng_end);
        //push end gps position to points array variable
        points.push(end);
        //show polyline using array
        polyline(map,points);
    }
});