在MVCarray中分配纬度和经度

时间:2014-02-03 03:22:01

标签: javascript php mysql arrays database

我试图获取我的mysql数据我读过一些文章 https://developers.google.com/maps/documentation/javascript/examples/layer-heatmap

    <?php
    $locations = mysql_query("select * from locations");        
?>
<?php                           
    $lats = "";         // string with latitude values
    $lngs = ""; 

    while ($locat = mysql_fetch_array($locations))
    {
    $lats = $locat['latitude'];
    $lngs = $locat['longitude'];
    $taxiData = [new google.maps.LatLng($lats,$lngs)];
    }
?>

而不是var taxiData = [new google.maps.LatLng(37.782551, -122.445368)];

现在我试图获取那些纬度和经度的值。

2 个答案:

答案 0 :(得分:0)

您正在尝试在PHP中执行js示例。真的,你需要学习一些关于网页开发的知识,但你可以尝试这样的尝试让它立即运行:

<?php /* You should add all needed external js scripts above  */?>
<script type="text/javascript"> 

//Here You should put everything before the points array declaring from the example   
<?php 
    $locations = mysql_query("select * from locations");

    echo 'var taxiData = [';        
    while ($locat = mysql_fetch_array($locations))
        echo "new google.maps.LatLng({$locat['latitude']}, {$locat['longitude']}),\n";
    echo '];';
//Here You should put everything after the points array declaring from the example  
?>
</script>

上面的代码非常糟糕,但js部分将被发送到浏览器,浏览器将尝试执行它。无论如何,你应该读一点关于web开发的内容,否则很多简单的事情对你来说都很难。祝你好运。

答案 1 :(得分:0)

您似乎将php和javascript与放弃混合。如果要发出javascript命令,则必须确保它看起来像浏览器的javascript。也许像是

<?php
    $locations = mysql_query("select * from locations");        
?>

<?php                           
    $lats = "";         // string with latitude values
    $lngs = ""; 

    while ($locat = mysql_fetch_array($locations))
    {
    $lats = $locat['latitude'];
    $lngs = $locat['longitude'];
    $taxiString = "new google.maps.LatLng($lats,$lngs)";
?>
<script type="text/javascript">
    var taxiData = [<?=$taxiString?>];
    // do whatever you want in javascript
</script>
    }
?>

一个经过测试的片段,展示了这个想法(我无法轻易地测试上述内容):

<html>
<?php
 for($i=0;$i<2;$i++) {
   $myString = "It works $i times!";
   echo $myString;
?>
<script type="text/javascript">
alert("<?= $myString; ?>");
</script>
<?php
}
?>
</html>

运行时,您会看到php字符串$myString已正确插入JavaScript。

让我澄清一点。

Javascript是由BROWSER执行的代码。 php是在SERVER上执行的代码。浏览器将向谷歌地图询问一些信息 - 确保浏览器发出的命令是正确的,这是你的任务。 php很不错,它允许您更改浏览器中显示的文本。

了解差异的方法是查看浏览器中网页的源代码。我在上面发布的第二个代码段实际上可以在http://www.floris.us/SO/mix.php

上找到

当您在浏览器中打开它,并查看源代码时,您将看到

<html>
It works 0 times!<script type="text/javascript">
alert("It works 0 times!");
</script>
It works 1 times!<script type="text/javascript">
alert("It works 1 times!");
</script>
</html>

稍微分解一下(并为了清晰起见添加一些回车):

<html>              - this was text in my original file
It works 0 times!   - this was the result of a php echo command
<script type="text/javascript"> - literal text in original file
alert("             - literal text
It works 0 times!   - the result of <?= $myString; ?>
");                 - literal text
</script>           - literal text

然后是疯狂的东西 - 同样的事情重复(因为php循环) - 但有一个不同的值(1而不是0):

It works 1 times!<script type="text/javascript">
alert("It works 1 times!");
</script>

</html>             - this last line did not repeat because it's outside the php loop

最终评论:

<?= $myString; ?>

的简写
<?php echo $myString; ?>