简体   繁体   English

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

[英]What is the correct way to write this jQuery ajax call

I am trying to set up a google map that that pulls in GPS coordinates from database via ajax and draws a poly line on the map. 我正在尝试建立一个谷歌地图,该地图通过ajax从数据库中提取GPS坐标,并在地图上绘制一条折线。

I have it working when the ajax call is removed, just using coord(lat_start,lng_start), and coord(lat_end,lng_end), it draws a line between lat_start,lng_start and lat_end,lng_end but when I try to wrap it in an ajax call, it says there is an error. 当删除ajax调用时,仅使用coord(lat_start,lng_start)和coord(lat_end,lng_end)即可工作,它在lat_start,lng_start和lat_end,lng_end之间划了一条线,但是当我尝试将其包装在ajax中时呼叫,它说有一个错误。

If possible, I would like guidance on how to write this block correctly. 如果可能的话,我希望获得有关如何正确编写此块的指导。

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

Thanks 谢谢

//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),

        ]);                     
    }
});

Ok, so finally worked it out! 好的,终于解决了!

Posting my answer, which might be wrong but it works. 发布我的答案,这可能是错误的,但是可以。

I needed to set up an array variable and push points to it. 我需要设置一个数组变量并将其压入该变量。

Code is fully commented but if you have any questions, just ask :) 代码已完全注释,但是如果您有任何疑问,请问:)

//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);
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM