Клуб API Карт

Разобрался с AJAX и вроде все отлично, но что то пошло не так, помогите кто чем сможет.

Djoni.girl15
11 февраля 2015, 18:32

 

это основная страница

<html>

<head>

    <title>Примеры. Ломаные</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <!-- Если вы используете API локально, то в URL ресурса необходимо указывать протокол в стандартном виде (http://...)-->

<script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>

<script type="text/javascript" src="jquery.js"></script>

    <style>

        html, body, #map {

            width: 100%; height: 100%; padding: 0; margin: 0;

        }

    </style>

         

<script type="text/javascript">

        function show()  

        {  

            $.ajax({  

                url: "time.php",  

                cache: false,  

                success:function(msg){

try {

            var result = jQuery.parseJSON(msg);

            alert("result.coordinates="+result.coordinates);

//result.lat - необходимая переменная

//result.lon - необходимая переменная

//result.time - необходимая переменная

 

//что больше нравится

 

/*alert("result.lat="+result.lat);

alert("result.lon="+result.lon);

alert("result.time="+result.time);*/

 

/*console.log("result.lat="+result.lat);

console.log("result.lon="+result.lon);

console.log("result.time="+result.time);*/

}

catch(e) {

alert("Error.\n"+msg);

}

        }

    });

        }  

      

        $(document).ready(function(msg){  

            show();  

            setInterval('show()',1000);  

        });  

    

 

ymaps.ready(init);

function init() {

    // Создаем карту.

    var myMap = new ymaps.Map("map", {

            center: [52.52395, 103.780975],

            zoom: 10

        });

 

    // Создаем ломаную, используя класс GeoObject.

    var myGeoObject = new ymaps.GeoObject({

            // Описываем геометрию геообъекта.

            geometry: {

                // Тип геометрии - "Ломаная линия".

                type: "LineString",

                // Указываем координаты вершин ломаной.

                coordinates: [alert("result.coordinates="+result.coordinates)]

                

            },

            // Описываем свойства геообъекта.

            properties:{

                // Содержимое хинта.

                hintContent: "Я геообъект",

                // Содержимое балуна.

                balloonContent: "Маршрут"

            }

        }, {

            // Задаем опции геообъекта.

            // Включаем возможность перетаскивания ломаной.

            draggable: false,

            // Цвет линии.

            strokeColor: "#FFFF00",

            // Ширина линии.

            strokeWidth: 5

        });

 

        // Добавляем линии на карту.

    myMap.geoObjects

        .add(myGeoObject)

    }

 

</script>

</head>

<body>

  

<div id="map"></div>

</body>

</html>

 

Это страница с формированием данных

 

<?php

   function my_sql_connection($server, $user, $pass, $dbname) {

    // Подключаемся к базе

   mysql_connect($server, $user, $pass)

    or die ("Не удается подключиться к серверу: ".  mysql_error());

   mysql_select_db($dbname)

    or die ("Не удается подключиться к базе: ".  mysql_error());

   }

   

   $server = "localhost";

   $user = "****";

   $pass= "****";

   $dbname = "points";

   

  my_sql_connection($server, $user, $pass, $dbname); // Подключаемся к базе данных

 

   $tablename = "****";

   

   $i= mysql_query("SELECT Latitude, Longitude FROM $tablename ORDER BY id") or die ("Не удается подключиться к базе: ".  mysql_error());

   

$coordinates = array();

while ($row = mysql_fetch_assoc($i)) {

$currentCoordinates = array();

$currentCoordinates['lon'] = $row["Longitude"];

$currentCoordinates['lat'] = $row["Latitude"];

 

$coordinates[] = $currentCoordinates;

//$Latitude = json_encode($row["Latitude"]).",";

//$Longitude = json_encode($row["Longitude"]);

//$coordinates = "[".$Latitude." ".$Longitude."], ";

 

}

json_encode($coordinates);

 

?>

 

9 комментариев
Подписаться на комментарии к посту

Зачем выкладывать код PHP в посте?

Что мы должны с ним сделать? Выполнить в уме?

Нужна ссылка на эту страницу и описание того что именно не работает

Думал денвер есть у всех :-(

Всеволод Шмыров
12 февраля 2015, 11:22
Доброе утро! PHP используют далеко не все. Да и вашей базы данных у нас нет.  Могли бы вы дать страницу на исполняющийся скрипт? Какая ошибка возникает в консоли при выполнении?

Вообще проблема в том что я не могу добавить трек по координатам из базы данных, я сделал Ajax запрос в фвйл тайм, где происходит подключение к базе данных и выборка маршрута, после данные отпровляются на страницу с картой в формате JSON и они самое интересное доходят, но как только я прописываю  // Указываем координаты вершин ломаной.

                coordinates: [alert("result.coordinates="+result.coordinates)]

карта прекращает грузиться :-(

Всеволод Шмыров
12 февраля 2015, 14:45
Нажмите Ctrl+Shift+I на странице. Отображаются ли какие-нибудь ошибки?

 Uncaught SyntaxError: 67 Unexpected token ; не понятно как может быть синтаксическая ошибка так как данный слой присваевается выше, может я не прав :-( v.shmyroff с тобой как то связаться можно, для меня JS лес дримучий, а помощь ой как не помешала бы :-)

Всеволод Шмыров
13 февраля 2015, 12:24
Значит просто напросто ошибка где-то в коде.
К сожалению, я на располагаю таким большим количеством времени, чтобы доделывать чужие проекты. Особенно когда вопрос не про API, а про значение в JS в целом.

В коде на строчке [alert("result.coordinates="+result.coordinates)] написана чушь.
alert JS-функция, которая вызывает отображение окна браузера.
Всеволод Шмыров
13 февраля 2015, 12:27
А еще функция init вызывает полностью независимо от ajax. init может сработать и до, и после получения ответа от сервера.

Спасибо большое в любом случаи