Я много раз изучал эту тему, но я не мог найти правильный ответ на мой вопрос. Позвольте мне объяснить это.
Я создаю приложение с API Карт Google, где я хочу иметь несколько местоположений, отображаемых на карте, на основе значений моей базы данных. У меня есть объект под названием Locations в моем javascript, где я храню имена переменных «,» lat и «lon» (широта, долгота).
var Locations = [{ name: 'test', lat: 52.351753, lon: 5.002035 }, { name: 'test2', lat: 52.390839, lon: 4.908722 }];
В этой части я храню свои местоположения. Хотя он работает, он жестко закодирован. Итак, я хочу, чтобы все значения базы данных mysql выходили из базы данных в мою javascript-переменную динамически. Я зашел через запись базы данных с PHP:
foreach ($query as $post) { ?> <h1><?php echo $post['naam'] ?></h1> <p><?php echo $post['plaats'] ?></p> <p><?php echo $post['categorie'] ?></p> <?php }
Теперь я попытался получить все эти значения и поместить их в свою javascript-переменную, но без каких-либо успехов.
var bedrijven = <?php echo json_encode($post); ?>;
Когда я console.log 'bedrijven', я получаю только последнюю запись, но хочу, чтобы каждая строка хранилась. Может кто-то помочь мне с этим? Было бы здорово, если бы это сработало.
Надеюсь, я объяснил достаточно хорошо.
Благодаря!
Пытаться:
PHP:
function getMarkers(){ $response = array(); foreach ($query as $post) { $response[] = array( 'name' => $post['naam'], 'lat' => $post['plaats'], 'lng' => $post['categorie'], ); } echo json_encode($response); }
то JS:
function addMarkers(json){ var title =json[index]["naam"]; var lat =json[index]["plaats"]; var lng =json[index]["categorie"]; marker = new google.maps.Marker({ position: new google.maps.LatLng (lat, lng), map: YOUR_MAP }); } jQuery.getJSON("URL OF PAGE",{ format: "json", dataType: 'json', contentType: "application/json; charset=utf-8"}, function(json){addMarkers(json); });
лучше, чтобы отправить информацию с помощью json и получить ее с помощью jQuery getJSON
, это может потребовать некоторой настройки. Но я создал то, о чем вы говорите. Кричите, если требуется какая-либо дополнительная помощь.
Вам, возможно, придется изучить этот крошечный бит, чтобы настроить его.
УДАЧИ!
$post
– ваша переменная итерации, поэтому она содержит только один элемент массива за раз. Если вам нужен весь массив, назначьте следующее:
var bedrijven = <?php echo json_encode($query); ?>;
Примеры на http://us1.php.net/json_encode должны быть полезны. Похоже, ваш $ post должен быть ассоциативным массивом:
$post[] = ("name"=>"test","lat"=>52.351753, "lon"=> 5.002035); ?> var bedrijven = <?php echo json_encode($post); ?>;
выходы:
var bedrijven = [{"name": "test", "lat": 52.351753, "lon": 5.002035}];