以正确的格式将 php 变量传递给 html

passing php variables to html with the right format

我对编程很陌生,因此有一些 "doubts"。我没有排序的一个是关于如何以某种格式从 php 到 html 传递数据。关于沟通。

我想做的是使用这部分程序在 Google 地图中插入 gps 位置。

有效位:我可以像从 php 到 html 的单个字符串一样导出数据 如果我输入数据形式html

,我可以根据需要绘制地图

我的理解是 php 数组在格式上与 html 变量所需的输入不兼容。这是代码

<!DOCTYPE html>
<html> 
<head> 
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
  <title>Google Maps Multiple Markers</title> 
  <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
  <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.1.min.js"></script>
</head> 
<body>
  <div id="map" style="width: 500px; height: 400px;"></div>

  <script type="text/javascript">
    // Define your locations
    **var locations = [
      ['<h4>One</h4>', -30.2, 100.6],
      ['<h4>Two</h4>', -31.2, 100.7],
      ['<h4>Three</h4>', -32.2, 100.8]
    ];**


    var iconURLPrefix = 'http://maps.google.com/mapfiles/ms/icons/';

    var icons = [
      iconURLPrefix + 'red-dot.png',
      iconURLPrefix + 'green-dot.png',
      iconURLPrefix + 'blue-dot.png',
      iconURLPrefix + 'orange-dot.png'
    ]
    var icons_length = icons.length;


    var shadow = {
      anchor: new google.maps.Point(15,33),
      url: iconURLPrefix + 'msmarker.shadow.png'
    };

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 10,
      center: new google.maps.LatLng(-37.92, 151.25),
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      mapTypeControl: false,
      streetViewControl: false,
      panControl: false,
      zoomControlOptions: {
         position: google.maps.ControlPosition.LEFT_BOTTOM
      }
    });

    var infowindow = new google.maps.InfoWindow({
      maxWidth: 160
    });

    var marker;
    var markers = new Array();

    var iconCounter = 0;

    // Add the markers and infowindows to the map
    for (var i = 0; i < locations.length; i++) {  
      marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map,
        icon : icons[iconCounter],
        shadow: shadow
      });

      markers.push(marker);

      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(locations[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));

      iconCounter++;
      if(iconCounter >= icons_length){
        iconCounter = 0;
      }
    }

    function AutoCenter() {
      //  Create a new viewpoint bound
      var bounds = new google.maps.LatLngBounds();
      //  Go through each...
      $.each(markers, function (index, marker) {
        bounds.extend(marker.position);
      });
      //  Fit these bounds to the map
      map.fitBounds(bounds);
    }
    AutoCenter();
  </script> 
</body>
</html>

理想情况下,我想用我已经在 php 中构建的变量替换 var 位置(到目前为止是在同一页面中构建的),然后将其传递给 var 位置。

我尝试通过以下方式传递数组:

    <?php
$locations = array();
for ($x = 0; $x <= 3; $x++) {
$locations[] = ['One',$x,$x+1,$x+2];

}
$loc = $_POST[$locations];
//$loc = $_POST['<h4>Bondi Beach</h4>, -33.890542, 151.274856'];
print_r ($locations);

?>
<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var cars = <?php print_r ($loc); ?>;
document.getElementById("demo").innerHTML = cars;
</script>

</body>
</html>

但运气不佳。无论如何可以支持吗? 非常感谢

-------------------------------------------- --------------

更新!!!感谢你们所有人,我设法确定了如何传递变量

<?php
$arr = array("Bondi Beach",",-33.890542",",151.274856");
?>

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var locations = <?php echo json_encode($arr) ?>;
document.getElementById("demo").innerHTML = locations[1];
</script>
</body>
</html>

现在下一步是尝试传递数组...尝试了以下但仍然无效...

<?php
$arr = array();
for ($x = 0; $x <= 3; $x++) {
$arr[] = ["One",$x,$x*2];
};
?>

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var arr = new Array(3);
for (i = 0; i <= 3; $i++) {
arr[i] = <?php echo json_encode($arr[i]) ?>;
}
document.getElementById("demo").innerHTML = arr[1];
</script>
</body>
</html>

也许是一个太幼稚的尝试...


已排序

感谢大家的支持。我希望很快见到你(作为我网站的会员!)

非常感谢:-)
伊曼纽尔

JSON 是 JavaScript 对象表示法,您可以使用 php 函数 json_encode http://php.net/manual/en/function.json-encode.php

JSON:一种旨在在语言和其他来源之间传输数据的语言。 JavaScriptPHP 都可以将对象编码和解码为 JSON,使它们可以互换。这是传输数据的现代且最常见的方式。 XML 仍在使用,但产生的开销比 JSON 多。

<script>
var cars = <?php json.encode($loc); ?>;
document.getElementById("demo").innerHTML = cars.join(", ");
</script>

上面的代码会将 PHP 数组对象 转换为 JSONjson_encode . JavaScript 将 JSON string 解析为 javascript 数组对象 。函数 join 是用来让你看到结果的。

要实际检索值,请使用:

cars[0]; //<h4>Bondi Beach</h4>
cars[1]; //-33.890542
cars[2]; //151.274856