PHP foreach in JavaScript

PHP foreach in JavaScript

本文关键字:JavaScript in foreach PHP      更新时间:2023-09-26

我正在使用以下代码(JavaScript中的PHP)。foreach正在工作,当我检查控制台时,它会回显结果,但映射脚本不起作用。

var t = [];
var x = [];
var y = [];
var h = [];
<?php foreach($obj->data as $mapMarkers) {
    echo "t.push('" . json_encode($mapMarkers->AreaName . "');'n";
    echo "x.push(" . $mapMarkers->Longitude . ");'n";
    echo "y.push(" . $mapMarkers->Latitude . ");'n";
    echo "h.push('" . $mapMarkers->FullAddressBR . "');'n";
} ?>
var i = 0;
for ( item in t ) {
    var m = new google.maps.Marker({
        map:       google_map,
        animation: google.maps.Animation.DROP,
        title:     t[i],
        position:  new google.maps.LatLng(x[i],y[i]),
        html:      h[i]
    });
    google.maps.event.addListener(m, 'click', function() {
        info_window.setContent(this.html);
        info_window.open(google_map, this);
    });
    i++;
}

试试这个:

<?php foreach($obj->data as $mapMarkers) {?>
    t.push(<?echo "'" . json_encode($mapMarkers->AreaName . "'" ?>));
    x.push(<?echo "'" . $mapMarkers->Longitude . "'" ?>);
    y.push(<?echo "'" . $mapMarkers->Latitude . "'" ?>);
    h.push(<?echo "'" . $mapMarkers->FullAddressBR . "'" ?>);
<? } ?>

您应该做的是创建一个php对象(好吧,让我们把它放在一个数组*中);您回显该对象的jsonencode;那么javascript可以直接读取。

原因是您将php与javascript分离。

所以类似的东西

<?php 
$my_array = array();
foreach($obj->data as $mapMarkers) {
  $my_array.push(array(
    't'=>$mapMarkers->AreaName,
    'x'=>$mapMarkers->Longitude,
    'y'=>$mapMarkers->Latitude,
    'h'=>$mapMarkers->FullAddressBR
  ));
}
echo 'var my_data = ' . json_encode($my_array) .';';
?>

现在你们可以这样使用它:

for (i in my_data) { // notice: this is how you use for/in.  The i becomes the index, not the item itself
var m = new google.maps.Marker({
    map:       google_map,
    animation: google.maps.Animation.DROP,
    title:     my_data[i].t,
    position:  new google.maps.LatLng(my_data[i].x, my_data[i].y),
    html:      my_data[i].h
});

(*php不知道数组到底应该是什么。大多数php数组实际上都是对象)

解决了它!我最初的代码运行得很好,我只是把长代码转错了方向。我的坏!