2012-02-21 3 views
2

Je suis en train de suivre l'exemple de l'API Google Maps famille appelée à l'aide de PHP/MySQL avec Google Maps (Example):erreur Javascript dans Google PHP/MySQL avec Google Maps exemple

Je pensais que ce devrait être droit et qu'il devrait y avoir de bonnes discussions à ce sujet. Faux! La plupart sont simples, sauf que la dernière partie ne fonctionne pas et signale une erreur Javascript dans la console Chrome.

J'ai le XML avec le travail de Produire PHP: link

maintenant dans le final part, mon code est le même, sauf que je devais changer le « phpsqlajax_genxml.php » pour « phpsqlajax_genxml2.php ».

Le rapport d'erreur dans la console Chrome

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

Mais je ne peux pas trouver le problème. Aucune suggestion?

+0

est-il possible de fournir une démo du problème? –

+0

ligne 34 depuis Google demo –

+0

comparez la ligne 34 de la démo Google avec le vôtre pour le numéro de] et vous avez une fonction de chargement comme demandé à la ligne 84 –

Répondre

0

Il n'y a rien de mal avec votre script PHP, mais le code affiché sur Google page contient en fait des erreurs. Dans l'échantillon téléchargeable here, les erreurs ne sont pas présentes.

Le problème est que la page sur la page Google utilise une syntaxe erronée pour accéder aux éléments du tableau:

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] || {}; 

Le code correct est:

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 rapports:

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

qui était en fait plus utile que le rapport d'erreur de syntaxe de Chrome. Puisque votre méthode load() contient donc une erreur, la méthode entière ne peut pas être interprétée et n'existe donc pas, ce qui explique la deuxième erreur que vous avez eue.