我似乎无法让PHP在Javascript标记中回显:
places.push(new google.maps.LatLng("<?php echo the_field('lat', 1878); ?>"));
我做错了什么?
答案 0 :(得分:2)
PHP在您执行页面时起作用,它应该可以工作。
请注意,运行JS函数时php不会执行。
另请确保您确实拥有the_field
功能。
答案 1 :(得分:2)
你没有引号试过吗?
places.push(new google.maps.LatLng(<?php echo the_field('lat', 1878); ?>));
答案 2 :(得分:1)
我怀疑你在LatLng方法参数中有“引号”,而不应该有。
你的php应该输出一个字符串,如'50 .123123123,12.123144'(没有'引号)。 LatLng方法需要2个值。
places.push(new google.maps.LatLng(<?php echo the_field('lat', 1878); ?>));
试试。
答案 3 :(得分:0)
如果您希望使用标记填充Google地图作为数据库查询的结果,您可能希望将其包装在JSON Web服务中。简单的事情:
<?php
// file to query database and grab palces
// do database connection
$places = array();
$sql = "SELECT * FROM places";
$res = mysql_query($sql);
while ($row = mysql_fetch_object($res)) {
$places[] = $row;
}
header('Content-Type: application/json');
echo json_encode($places);
exit;
然后在您的JavaScript文件中:
// get places
$.getJSON('getplaces.php', function(response) {
for (var i = 0; i < response.length; i++) {
place[] = response[i];
places.push(new google.maps.LatLng(place.lat, place.lng));
}
});
答案 4 :(得分:-1)
如果我理解你要做的事情(可能需要对你的问题进行更多解释),那么这可能是你的答案:
places.push(new google.maps.LatLng(<?php echo '"' . the_field('lat', 1878) . '"' ?>));
编辑:删除了;