Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Primeiramente fiquei em dúvida se este tópico tem que ficar em PHP ou em Javascript, então deixei aqui mesmo.
Então vamos lá, oque eu preciso é o seguinte, pegar uma array do PHP via ajax e tratar ela no JS. Como eu tentei até o momento e falhei mizeravelmente.
JAVASCRIPT:
$.ajax({url: "buscarCordenadas.php", success: function(dados){
console.log(dados)
}});
PHP (buscarCordenadas.php):
$select = $mysqli->query("SELECT id, cpfcnpj, nome_razsoc, endereco, bairro, logo, latitude, longitude FROM empresas");
while($v = $select->fetch_assoc()){
$dados[] = array(
"id" => $v['id'],
"cpfcnpj" => $v['cpfcnpj'],
"nome_razsoc" => $v['nome_razsoc'],
"endereco" => $v['endereco'],
"bairro" => $v['bairro'],
"logo" => $v['logo'],
"latitude" => $v['latitude'],
"longitude" => $v['longitude']);
}
echo $dados;
Ali na ultima linha eu já tentei passar esses dados por JSON, mas não vai e.e
Se eu der um print_r no $dados, ele me retorna isso (Que são dados fictícios):
Array
(
[0] => Array
(
[id] => 1
[cpfcnpj] => 00.000.000/0001-00[endereco] => Av. 5, 377
[bairro] => Centro
[logo] => cachacaria.png[1] => Array
(
[id] => 2
[cpfcnpj] => 00.000.000/0001-00
[nome_razsoc] => BR 11 Botequimm
[endereco] => Rua Onze, 130
[bairro] => Consolação
[logo] => br11.png[2] => Array
(
[id] => 3
[cpfcnpj] => 00.000.000/0001-00
[nome_razsoc] => Fritz Cervejaria Artesanal
[endereco] => Av. 29, 612
[bairro] => Cidade Jardim
[logo] => fritz.png[3] => Array
(
[id] => 4
[cpfcnpj] => 41.940.146/0001-02
[nome_razsoc] => Restaurante Niazi
[endereco] => Rua Três, 1605
[bairro] => Centro
[logo] => niazi.png[4] => Array
(
[id] => 5
[cpfcnpj] => 00.000.000/0001-00
[nome_razsoc] => Fernando Lanches
[endereco] => Av. Visc. de Rio Claro, 334[5] => Array
(
[id] => 6
[cpfcnpj] => 00.000.000/0001-00
[nome_razsoc] => Folks Lounge Gastro Bar
[endereco] => Av. 17, 825
[bairro] => Saúde
[logo] => folks.png)
Eu preciso disso para pegar as coordenadas de certos estabelecimentos e colocar no google maps, e os dados de cada empresa para preencher o infowindow do google maps.
O código para printar as coordenas no google maps é esse: http://www.marnoto.com/2013/12/mapa-com-varios-marcadores-google-maps.html
Seguindo esse script os dados do markersData estão no BD
Valeu, wootzor pela dica.
Mas na verdade eu estava errando na forma de percorrer a array no JS.
Acho o 'bicho' pra percorrer arrays no JavaScript é utilizando o json_encode...
Ex:
'dados.php':
<?php
//Criei um Mockzin, de dados poderia ser um retorno do DB xD...
//Algo como // SELECT id, nome, lat, lng FROM pessoas...
$dados = array(
array(
'id' => '1'
,'nome'=> 'Antoniét'
,'lat' => '-23.604.360'
,'lng' => '-46.633.474'
)
,array(
'id' => '2'
,'nome'=> 'Johann Sebastian Bach'
,'lat' => '-23.605.155'
,'lng' => '-46.642.201'
)
,array(
'id' => '3'
,'nome'=> 'Georg Friedrich'
,'lat' => '-23.609.808'
,'lng' => '-46.643.349'
)
,array(
'id' => '4'
,'nome'=> 'Wolfgang Amadeus Mozart'
,'lat' => '-23.612.099'
,'lng' => '-46.640.644'
)
,array(
'id' => '5'
,'nome' => 'Ludwig van Beethoven'
,'lat' => '-23.612.462'
,'lng' => '-46.638.062'
)
);
header('Content-Type: application/json; charset=utf-8');
print json_encode($dados);
index.html:
<!DOCTYPE HTML>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var ajax = new XMLHttpRequest();
ajax.open('GET', 'dados.php', true);
ajax.send();
ajax.onreadystatechange = function() {
if(ajax.readyState == 4 && ajax.status == 200) {
var pessoasJson = JSON.parse(ajax.responseText);
for(x in pessoasJson){
var pessoa = pessoasJson[x];
/*
'id' => '1'
,'nome'=> 'Antoniét'
,'lat' => '-23.604.360'
,'lng' => '-46.633.474'
*/
console.log(pessoa.id);
console.log(pessoa.nome);
console.log(pessoa.lat);
console.log(pessoa.lng);
}
}
}
</script>
</body>
</html>
Na chamada AJAX usa também o evento error para perceberes porque é que a chamada não está a ser feita correctamente.
A assinatura do evento é: function(jqXHR jqXHR, String textStatus, String errorThrown)