Google PHP/MySQL中的Javascript错误和Google Maps示例


Javascript error in Google PHP/MySQL with Google Maps example

我试图遵循Google Maps API系列的一个示例,名为Using PHP/MMySQL with Google Maps(example):

我认为这应该是直截了当的,应该围绕它进行一些很好的讨论。错了!除了最后一部分不起作用并在Chrome控制台中报告Javascript错误外,大部分内容都是直接的。

我用PHP输出XML:链接

现在,在最后一部分中,我的代码是相同的,只是我必须将"phpsqlajax_genxml.php"更改为"phpsqlajax_genxml 2.php"。

Chrome控制台中的错误报告

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

但我找不到问题。有什么建议吗?

您的PHP脚本没有任何问题,但谷歌页面上显示的代码实际上包含错误。在这里的可下载示例中,没有出现错误。

问题是谷歌页面上的页面使用了错误的语法来访问数组元素:

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()方法因此包含一个错误,因此无法解释整个方法,因此不存在,这解释了您得到的第二个错误。