【问题标题】:PHP loop inside Javascript at header - is this code valid at all?标头处 Javascript 内的 PHP 循环 - 这段代码是否有效?
【发布时间】:2011-01-07 15:00:03
【问题描述】:

亲爱的 StackOverflowers,您好,

我是网络编程的新手,发现服务器-客户端的混合令人困惑。 我编写了非常简单的代码,它接受一个 PHP 2D 数组 [index][keys](来自查询)来仅在 Google 地图(JavaScript)上绘制标记。有用。 但是我觉得不合适! 这确实是将值从我的 PHP 数组传递到 Javascript 函数的正确方法吗?

提前致谢 阿里


再次编辑清楚,添加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&amp;v=2&amp;sensor=false&amp;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>

【问题讨论】:

  • 带有 4 个空格或 1 个制表符的前缀可将部分格式化为代码。发帖前先看看预览。
  • 非常感谢,我知道了!!!

标签: php javascript google-maps foreach


【解决方案1】:
<?php 
foreach($query as $item):?>

    var oLat = '<?php  echo $item['lat'];?>';
    var oLon = '<?php  echo $item['lon'];?>';

    addmarker(oLat, oLon);  

    <?php endforeach;?>

如果您将 $query 变量设置为 $query=array(array('lat'=>2,'lon'=>4),array('lat'=>5,'lon'=>6),array('lat'=>7,'lon '=>8),array('lat'=>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 源代码。

【讨论】:

    【解决方案2】:

    您的代码似乎没有任何本质上的错误。你能提供输出吗?

    【讨论】:

    • 嗨,很抱歉,需要编辑一些代码,因为大部分代码没有显示。我正在处理它,将
    【解决方案3】:

    浏览器不关心值、结构甚至代码是如何到达那里的,只要它是有效的 JavaScript。

    【讨论】:

      【解决方案4】:

      我会写:

      <?php foreach($query as $item):?>
      
      addmarker('<?php echo $item['lat'];?>', '<?php echo $item['lon'];?>');  
      
      <?php endforeach;?>
      

      因为它更简洁,并且不会多次声明两个 JS 变量。

      【讨论】:

        猜你喜欢
        • 2016-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多