您好亲爱的StackOverflowers,
我是网络编程的新手,发现服务器 - 客户端混合物令人困惑。 我编写了非常简单的代码,它接受PHP 2D数组[索引] [键](来自查询)只在Google地图上绘制标记(JavaScript)。有用。 但它对我来说不合适! 这确实是将我的PHP数组中的值传递给Javascript函数的正确方法吗?
提前致谢 ARI
再次编辑清晰,添加了4个空格,感谢您的建议!
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title><?php echo $title;?></title
<script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=GoogleMapsKey"
type="text/javascript">
</script>
<script type="text/javascript" language="JavaScript">
var m_map;
//Add one marker.
function addmarker(iLat, iLon)
{
var point = new GLatLng(iLat, iLon);
m_map.addOverlay(new GMarker(point));
}
function initialize()
{
if (GBrowserIsCompatible())
{
m_map = new GMap2(document.getElementById("map_canvas"));
m_map.setCenter(new GLatLng(37.4419, -122.1419), 1);
m_map.setUIToDefault();
<?php foreach($query as $item):?>
var oLat = '<?php echo $item['lat'];?>';
var oLon = '<?php echo $item['lon'];?>';
addmarker(oLat, oLon);
<?php endforeach;?>
}
}// End initialize()
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 500px; height: 300px" ></div>
答案 0 :(得分:1)
您的代码似乎没有任何内在错误。你能提供输出吗?
答案 1 :(得分:1)
浏览器不关心值,结构,甚至代码是如何实现的,只要它是有效的JavaScript。
答案 2 :(得分:1)
我写道:
<?php foreach($query as $item):?>
addmarker('<?php echo $item['lat'];?>', '<?php echo $item['lon'];?>');
<?php endforeach;?>
因为它更简洁,并且不会多次声明两个JS变量。
答案 3 :(得分:1)
<?php
foreach($query as $item):?>
var oLat = '<?php echo $item['lat'];?>';
var oLon = '<?php echo $item['lon'];?>';
addmarker(oLat, oLon);
<?php endforeach;?>
如果您将$ query变量设置为,则上面的代码段应提供以下输出 $查询=阵列(阵列( 'LAT'=大于2, 'LON'= 1→4),阵列( 'LAT'=大于5, 'LON'=→6),阵列( 'LAT'=&GT 7, 'LON'=&GT; 8),阵列( 'LAT'=&GT; 9, 'LON'=→1));
var oLat ='2'; var oLon ='4';
addmarker(oLat,oLon);
var oLat ='5'; var oLon ='6';
addmarker(oLat,oLon);
var oLat ='7'; var oLon ='8';
addmarker(oLat,oLon);
var oLat ='9'; var oLon ='1';
addmarker(oLat,oLon);
检查你的网页html来源。