PHP для каждого цикла не работает?

Мой для каждого не работает. Не зацикливание кода 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>";

0

Решение

Вам нужно будет создать массив в вашем цикле 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
}
});
}});
1

Другие решения

Вы создаете множество функций createMarker (), и последние переопределяют все предыдущие. Поэтому, когда вы вызовете его позже, вы получите ровно один вызов с последними параметрами. Не создавайте функцию, перенесите координаты в какое-то хранилище и зациклите его потом.

0

<?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>";
}
?>
0
По вопросам рекламы [email protected]