PHP for each 循环不起作用

PHP for-each loop not working?

本文关键字:不起作用 循环 each for PHP      更新时间:2023-09-26

我的for-每个人都不起作用。不循环JavaScript代码。有人可以提供一些代码来提供帮助吗?

		$guy= queryMysql("SELECT lat, long FROM members WHERE user='$guy'");
		while($data2 = mysql_fetch_array($guy)){
		 $latitude1= $data2['lat'];
		 $longitude1= $data2['long'];
		 
			echo "<script>function createMarker() {
			$.goMap.createMarker(
			{ 
				latitude: $latitude1, 
				longitude: $longitude1, 
				 animation: google.maps.Animation.DROP,
				title: 'Current users location', 
				html: { 
					content: '<p>This is your location $friend</p>', 
					popup: false 
				} 
			}
			);
			}</script>";

你需要在PHP循环中构建一个数组,并将该数据提供给javascript。 这样的事情可以工作:

.PHP

<?php
$strOut = '';
if (sizeof($following)) {
    foreach ($following as $friend) {
        $friendsloc = queryMysql("SELECT homelocation, currentlocation FROM members WHERE user='$friend'");
        while ($data2 = mysql_fetch_array($friendsloc)) {
            $latitude1  = $data2['homelocation'];
            $longitude1 = $data2['currentlocation'];
            $strOut .= '{"lat": '.$latitude1.', "lon": '.$longitude1.'},';

        }
    }

}
$strOut = 'var locations = [' . rtrim($strOut,",") . ']';
?>

JavaScript:

$(document).ready(function() {
    // get a Google map centred roughly on the John Dalton Building: 
    $('#map').goMap({
        latitude: 53.472342399999995,
        longitude: -2.2398096,
        zoom: 12,
        maptype: 'ROADMAP',
        scaleControl: true
    });

    <?php echo $strOut; ?>
    // now add a marker: 
    for(var i = 0; i < locations.length; i++) {
      $.goMap.createMarker({
          latitude: locations[i].lat,
          longitude: locations[i].lon,
          animation: google.maps.Animation.DROP,
          title: 'Current users location',
          html: {
              content: '<p>This is your location </p>',
              popup: false
          }
      });
    }


});

你创建了许多 createMarker() 函数,最后一个会覆盖所有以前的函数。因此,当您稍后调用它时,您只会得到一个带有最后一个参数的调用。不要创建函数,将坐标推送到某个存储,然后循环访问它。

<?php
    $friendsloc = mysql_query("SELECT lat, long FROM members WHERE user='$friend'");
            while($data2 = mysql_fetch_array($friendsloc)){
             $latitude1= $data2['lat'];
             $longitude1= $data2['long'];
                echo "<script>function createMarker() {
                $.goMap.createMarker(
                { 
                    latitude: $latitude1, 
                    longitude: $longitude1, 
                     animation: google.maps.Animation.DROP,
                    title: 'Current users location', 
                    html: { 
                        content: '<p>This is your location $friend</p>', 
                        popup: false 
                    } 
                }
                );
                }</script>";
                    }
                        ?>