JavaScript中的PHP-foreach
我正在使用以下代码(JavaScript中的PHP)。foreach正在工作,当我检查控制台时,它正在回显结果,但是map脚本不工作JavaScript中的PHP-foreach,javascript,php,google-maps,Javascript,Php,Google Maps,我正在使用以下代码(JavaScript中的PHP)。foreach正在工作,当我检查控制台时,它正在回显结果,但是map脚本不工作 var t = []; var x = []; var y = []; var h = []; <?php foreach($obj->data as $mapMarkers) { echo "t.push('" . json_encode($mapMarkers->AreaName . "');\n"; echo "x.pus
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++;
}
var t=[];
var x=[];
变量y=[];
var h=[];
试试这个:
<?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 . "'" ?>);
<? } ?>
t、 推送(尝试以下操作:
<?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 . "'" ?>);
<? } ?>
t、 push(您应该做的是创建一个php对象(好吧,让我们把它放在一个数组中*);您回显该对象的json_编码;然后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) .';';
?>
(*php不知道数组真正应该是什么。大多数php数组都是真正的对象)您应该做的是创建一个php对象(好吧,让我们把它放在数组中*);您回显该对象的json_编码;然后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) .';';
?>
(*php不知道数组真正应该是什么。大多数php数组实际上是对象)解决了它!我的原始代码运行得很好,我只是把long和lat的顺序搞错了。我的不好!解决了它!我的原始代码运行得很好,我只是把long和lat的顺序搞错了。我的不好!这太干净了。json\u encode
是一种PHP方法。你也使用了错误的连接运算符。干净gh可能是,尽管有错误,但我怀疑这是实际问题的根源。@harris,我的错,对不起。现在它被更正了。这更干净。json_encode
是一个PHP方法。另外,您使用了错误的串联运算符。尽管可能更干净,尽管有错误,但我怀疑这是实际问题的根源。@harris,我的错,抱歉。现在它是正确的。您确定您的变量google_map
定义正确并且在范围内可用吗?因此,您使用变量作为索引和循环-这意味着迭代对象的属性-来构建您自己的循环以迭代数组的条目吗?可能重复@FrancescoCasula我不知道认为它是重复的。循环应该提供期望的结果,OP确实声明他已经检查过了。你确定你的变量google\u map
定义正确并且在范围内可用吗?因此,你使用一个变量作为索引和一个循环(意指迭代对象的属性)来构建你的own循环迭代数组的条目?可能是@FrancescoCasula的重复我不认为它是重复的。循环应该提供所需的结果,OP声明他已经检查过了。