Hallo Henrique,
in deinem generierten Quellcode steht
L.marker([poleLat+.03, poleLon-.03], {icon: streetSmartMarker}).addTo(map).bindPopup("null").openPopup();
Leaflet tut also genau das, was du ihm gesagt hast. Wenn Du kein separates <p> Element anlegen willst, das danach ins Leaflet gesaugt wird, müsste als Argument von bindPopup wohl ein HTML String mit dem Sourcecode für dieses <p> Element erscheinen. Wenn da "null" steht, war in der Variablen, die Du da PHP seitig genutzt hast, ggf. nichts drin.
Der Unterschied zwischen JavaScript- und PHP-Variablen ist Dir hoffentlich klar.
Das hier ist auch nicht ganz gar:
var name1 = "<?php echo json_encode($name1); ?>";
json_encode ist der empfohlene Weg, um PHP Strings für JavaScript zu codieren, richtig. Aber: die Anführungszeichen bringt json_encode schon mit, die musst Du weglassen. Andernfalls dürfte das Script mit einem Error abbrechen.
Und wenn, dann solltest Du auch die <?= ?> Syntax verwenden, das ist kompakter:
var name1 = "<?= json_encode($name1); ?>";
Es kann nun noch sein, dass Leaflet tatsächlich ein HTML Element erwartet und mit einem einfachen Text nicht klarkommt. Probier also im Zweifelsfall mal dies:
var name1 = "<p>" + <?= json_encode($name1); ?> + "</p>";
(Edit: Syntaxfehler berichtigt)
Rolf
sumpsi - posui - obstruxi