Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

Gigzz10

[Resolvido] PHP (while) dentro de um Javascript

Mensagens Recomendadas

Gigzz10    0
Gigzz10

Boas,

Primeiro de começar a explicar o meu problema quero que saibam que sou novo nisto. Eu trabalho bem com HTML, CSS e percebo algumas coisas de javascript e de php mas não sou nenhum expert xD

O meu problema é o seguinte... eu quero que no mapa apareça os pontos que se vai adicionando à base de dados, mas como não sei quantos pontos poderá haver tenho que utilizar o while (penso eu).

Vou vos mostrar o código que tenho feito, onde vai buscar os dados a bd e como tenho o while dentro do javacript (que não sei se é possível ou não).

obs: quando tento executar o código com os dois whiles que tenho o mapa não funciona, mas quando os tiro já funciona mas como é claro sem os pontos porque esses estão na bd.

PHP e Javascript:

<?php
$result = mysql_query("SELECT * FROM eventos");
?>
<script>
$(document) .ready(function(){

if( navigator.geolocation )
navigator.geolocation.getCurrentPosition(success, fail);

else
$("map").html("HTML5 Not Supported");

});
function success(position)
{
var googleLatLng = new google.maps.LatLng(position.coords.latitude,
		 position.coords.longitude);
var mapOtn = {
zoom : 13,
center : googleLatLng,
mapTypeId: google.maps.MapTypeId.ROAD
}
var Pmap = document.getElementById("map");

var map = new google.maps.Map(Pmap, mapOtn);

//aqui começa os popups de todos os eventos

//LOCALIZAÇÃO ACTUAL
addMarkerLocalizacao(map, googleLatLng, "Tua Localização conteudo");

//TODAS AS LOCALIZAÇÕES DA BASE DE DADOS
while($row = mysql_fetch_assoc($result)){
echo "
addMarker<?php print $id ?>(map, <?php print $id ?>, '<?php print $conteudo_evento ?>');
";
}

//aqui acaba os popups de todos os eventos

}
//aqui é o point da minha localização actual
function addMarkerLocalizacao(map, googleLatLng, content) {
var markerOptn = {
position : googleLatLng,
map : map,
animation : google.maps.Animation.BOUNCE
};

var marker = new google.maps.Marker(markerOptn);

var infoWindow = new google.maps.InfoWindow ({ content: content,
		 position: googleLatLng});
google.maps.event.addListener(marker, "click", function(){
infowindow.open(map);
});
}

//aqui começa os points de todos os eventos

//TODAS LOCALIZAÇÕES DA BASE DE DADOS
while($row = mysql_fetch_assoc($result)){
echo "
var <?php print $id ?> = new google.maps.LatLng(<?php print $cordenadas ?>);
function addMarker<?php print $id ?>(map, googleLatLng, content) {
var markerOptn = {
 position : <?php print $id ?>,
 map : map,
 animation : google.maps.Animation.DROP,
};

var marker = new google.maps.Marker(markerOptn);

var infoWindow = new google.maps.InfoWindow ({ content: content,
		 position: <?php print $id ?>});


google.maps.event.addListener(marker, 'click', function(){
 infowindow.open(map);
});
}
";
}
//aqui acaba os points de todos os eventos
//function fail - quando a função dá erro
function fail(error)
{
var errorType = {
//mother of all errors 
0: "Unknown Error",
1: "Permission denied by the user",
2: "Position of the user not available",
3: "Request timed out"
};

var errMsg = errorType[error.code];

if(error.code == 0 || error.code == 2) {
errMsg = errMsg+" - "+error.message;
}

$("map").html(errMsg);
}
</script>

HTML (body):

<div id="map"></div>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.