0 レビュー
1 回答
(MYSQL)データベースで(PHP)配列を取得し、いくつかのphp配列データをJavaScriptに挿入します
配列をフェッチしていて、データの一部をJavaScriptの2つの場所に挿入したいのですが、正しく行う方法がわかりません。誰か助けてくれませんか?
次のようにPHP/MYSQLで配列をフェッチしています:
<?php while($row = mysql_fetch_array( $result )) { ?>
<?php
//I WANT TO LOOP THE BELOW CODE IN JAVASCRIPT SOMETHING LIKE THIS?:
echo 'var point'.$count.'= new google.maps.LatLng('.$LAT.', '.$LNG.');';
?>
<?php
// I WANT TO LOOP THIS ALSO BUT IT IS AT THE END OF THE JAVASCRIPT CODE AND THERE IS CODE IN THE MIDDLE THAT I DON'T WANT LOOPED
echo 'var marker'.$count.'= new google.maps.Marker({draggable: true,raiseOnDrag: false,icon: image,shadow: shadow,shape: shape,map: map,position: point'.$count.'});';
?>
<?php } ?>
JavaScriptは次のようになります:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function load(){
//** START LOOP THIS IN PHP **//
var point1 = new google.maps.LatLng(44.8041322, -93.1668858); //LOOP THIS IN PHP
//** END LOOP THIS IN PHP **//
var myMapOptions = {
zoom: 5,
center: point,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById("map"),myMapOptions);
var image = new google.maps.MarkerImage(
'marker-images/image.png',
new google.maps.Size(40,35),
new google.maps.Point(0,0),
new google.maps.Point(20,35)
);
var shadow = new google.maps.MarkerImage(
'marker-images/shadow.png',
new google.maps.Size(62,35),
new google.maps.Point(0,0),
new google.maps.Point(20,35)
);
var shape = {
coord: [27,0,30,1,32,2,34,3,35,4,36,5,38,6,39,7,39,8,39,9,39,10,38,11,37,12,33,13,34,14,34,15,33,16,32,17,31,18,27,19,28,20,28,21,27,22,26,23,22,25,23,26,24,27,24,28,24,29,24,30,24,31,24,32,23,33,22,34,17,34,16,33,15,32,15,31,14,30,14,29,15,28,15,27,16,26,17,25,13,23,12,22,11,21,11,20,12,19,8,18,7,17,6,16,5,15,5,14,6,13,2,12,1,11,0,10,0,9,0,8,0,7,1,6,3,5,4,4,5,3,7,2,9,1,12,0,27,0],
type: 'poly'
};
//** START LOOP THIS IN PHP **//
var marker1 = new google.maps.Marker({draggable: true,raiseOnDrag: false,icon: image,shadow: shadow,shape: shape,map: map,position: point1});
//** END LOOP THIS IN PHP **//
}
</script>
情報を2回ループする方法がわからないので、上部にあるvar point1 ...ループは実際には問題ではありませんが、JavaScriptをすべてループせずに下部をループするにはどうすればよいですか>
わからない
0
レビュー
答え :
解決策:
以下が機能するはずです。次に、whileループの後の適切な場所に$point_strと$marker_strを挿入します。
<?php
$point_str = '';
$marker_str = '';
while($row = mysql_fetch_array( $result )) {
// define $LAT, $LNG, $count++
$point_str .= 'var point'.$count.'= new google.maps.LatLng('.$LAT.', '.$LNG.');'."\n";
$marker_str .= 'var marker'.$count.'= new google.maps.Marker({draggable: true,raiseOnDrag: false,icon: image,shadow: shadow,shape: shape,map: map,position: point'.$count.'});'."\n";
}
?>
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。