Ошибка JavaScript в Google PHP / MySQL с примером Google Maps - PullRequest
2 голосов
/ 21 февраля 2012

Я пытаюсь следовать примеру семейства API Карт Google, которое называется Использование PHP / MySQL с Google Maps ( Пример ):

Я подумал, что это должно быть прямо и что должнобудет хорошая дискуссия вокруг этого.Неправильно!Большинство из них прямолинейны, за исключением того, что последняя часть не работает и сообщает об ошибке Javascript в консоли Chrome.

У меня работает XML-код вывода с PHP: ссылка

Теперь в финальной части мой код такой же, за исключением того, что мне пришлось изменить «phpsqlajax_genxml.php» на «phpsqlajax_genxml2.php».

Сообщение об ошибке в Chromeconsole

Uncaught SyntaxError: Unexpected token ] on line 34
Uncaught ReferenceError: load is not defined on line 84

Но я не могу найти проблему.Есть предложения?

1 Ответ

0 голосов
/ 13 марта 2012

В вашем PHP-скрипте нет ничего плохого, но код, показанный на странице Google , на самом деле содержит ошибки.В загружаемом примере здесь ошибок нет.

Проблема в том, что страница на странице Google использует ошибочный синтаксис для доступа к элементам массива:

var name = markers[[]i].getAttribute("name");
var address = markers[[]i].getAttribute("address");
var type = markers[[]i].getAttribute("type");
var point = new google.maps.LatLng(
  parseFloat(markers[[]i].getAttribute("lat")),
  parseFloat(markers[[]i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[[]type] || {};

Правильный код:

var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
  parseFloat(markers[i].getAttribute("lat")),
  parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};

Отчеты Firebug:

Line 34: missing ] in index expression:
var name = markers[[]i].getAttribute("name");

, что на самом деле было более полезным, чем отчет об ошибках синтаксиса Chrome.Поскольку ваш метод load (), таким образом, содержит ошибку, весь метод не может быть интерпретирован и поэтому не существует, что объясняет вторую полученную ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...