簡體   English   中英

PHP for-each循環無法正常工作?

[英]PHP for-each loop not working?

我的for-each不起作用。 不循環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>";
                    }
                        ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM