我在我的网站上使用gmaps.js作为交互式地图。该库允许您使用long / lat坐标添加新的地图标记。这些存储在我的数据库中,我检索它(以及其他数据)并像这样回显这些数据:
<input id="lat" type="hidden" value="'.$lat.'"/>
<input id="long" type="hidden" value="'.$long.'"/>
还有其他数据被回显,这就是为什么你看不到任何<?php ?>
标签 - 这不是语法错误!
当我检查网站前端的元素时,我可以看到相应的值已成功回显。
我遇到的问题是将<input>
标记中存储的值存入我的jQuery函数。
我想在这里得到每个long和lat值:
map.addMarker({
lat: $lat,
lng: $long,
title: 'Lima',
}
});
但据我了解,将PHP直接回调为jQuery函数是不好的做法。
因此,我试图做到以下几点:
$(document).ready(function(){
$("lat").val();
$("long").val();
$.each( markers, function( index, value ) {
var markers = {
lat: value.lat,
lng: value.long,
}
});
});
你有什么建议?
提前感谢您的时间!
答案 0 :(得分:2)
首先,在JQuery中按ID选择元素,你需要在html id
之前插入# $("#lat").val();
$("#long").val();
然后,我不理解您的代码,但是我可以看到上面的两行没有做任何事情,从输入元素中获取价值,但不要将它们保存到任何变量。< / p>
答案 1 :(得分:1)
我不是最先进的程序员,但我知道一个更清洁的解决方案。
<强> JSON 强> 我知道您使用PHP来检索您的协调,并且您希望以Javascript可以理解的方式显示您的结果。嗯,有一种更好的语言交流方式,它叫做JSON。您可以在PHP中使用它:
echo json_encode(["lat"=>$lat,"long"=>$long]);
然后你可以在Javascript中检索它:
var LatLong = JSON.parse('{"lat":"lat","lon":"long"}');
然后,您可以使用普通的Javascript来检索Lat和Long。只需通过LatLong.lat或类似的东西。
<强> AJAX 强> 通常我会使用AJAX来做这些事情,但我想你没必要这样做。
最后,代码
这是一个如何在没有AJAX
的情况下做到这一点的例子var parseString = '{"lat":"lat","long":"long"}'; // <-- Your PHP echo
var LatLong = JSON.parse(parseString);
map.addMarker({
lat: LatLong.lat,
lng: LatLong.long,
title: 'Lima',
}
});
答案 2 :(得分:0)
我假设您可以通过PHP访问数据库中的lng / lat数据。那么,你可以通过json_encode()将它传递给你的客户端javascript。下面的代码假设您有一个数据库中的行对象数组。
<script>
// Created data from PHP
var mapData = <?php echo (!empty($data)) ? @json_encode($data) : '[]'; ?>;
</script>
然后继续使用$ .each()等
继续