Javascript 使用Ajax从数据库/模型加载数据

Javascript 使用Ajax从数据库/模型加载数据,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我正在创建一个谷歌地图应用程序。我需要使用Ajax从数据库加载位置数据,这样我就可以每x秒显示一次这些数据。我正在使用CodeIgniter/PHP。这就是我得到的: <!DOCTYPE html> <html> <head> <title>Simple Map</title> <meta name="viewport" content="initi

我正在创建一个谷歌地图应用程序。我需要使用Ajax从数据库加载位置数据,这样我就可以每x秒显示一次这些数据。我正在使用CodeIgniter/PHP。这就是我得到的:

    <!DOCTYPE html>
    <html>
        <head>
             <title>Simple Map</title>
            <meta name="viewport" content="initial-scale=1.0">
        <meta charset="utf-8">
        <style>
            html, body {
                height: 100%;
                margin: 0;
                padding: 0;
            }
            #map {
                height: 100%;
            }
        </style>
    </head>
    <body>
        <div id="map"></div>
        <script>
            var map;
            function initMap() {
                map = new google.maps.Map(document.getElementById('map'), {
                    center: {lat: -34.397, lng: 150.644},
                    zoom: 8
                });


                httpCall();
            }

            function httpCall($http) {
                $http({
                    method: 'GET',
                    url: '<?php echo site_url('User/marks') ?>',
                    data: data,
                    dataType: "json"
                })
                        .success(function (data) {
                            for (var i = 0, len = markers.length; i < len; ++i) {
                                var myLatLng = {lat: markers[i].lat, lng: markers[i].lng};

                                var marker = new google.maps.Marker({
                                    position: {
                                        lat: parseFloat(markers[i].lat),
                                        lng: parseFloat(markers[i].lng)
                                    },
                                    map: map
                                });
                            }
                        })
            }

        </script>
        <script src="https://maps.googleapis.com/maps/api/js?callback=initMap"
        async defer></script>
    </body>
</html>
用户模型获取标记功能是:

function marks() {
    echo json_encode($this->user_model->get_marks());
}
        function get_marks() {
            $sql = "select lat,lng 
from tbl_locations";
            $query = $this->db->query($sql);
            $result = $query->result();
            return $result;
        }
我的错误是:

ReferenceError: data is not defined

显然我传递的数据不正确,但正确的方法是什么?

将json结果存储在数组中

function marks() {
    echo json_encode(array('data'=>$this->user_model->get_marks()));
}

并尝试在ajax结果中使用console.log(data)打印数据结果。

这是因为您没有定义数据变量,您正在通过data:data传递数据,
您必须在函数httpCall($http)中定义它,然后在ajax函数中传递它。

我仍然得到“ReferenceError:data未定义”