Как из php файла передать данные в переменную javascript

Angelzzz

Новичок
Через API получаю данные от стороннего сервиса. Структура ответа:

[{
...
“Latitude”:“<Широта>”,
“Longitude”:“<Долгота>”,
...
}]​

С помощью php файла getdata.php прохожу по массиву и собираю все данные

foreach($response as $item){
$a ="[".$item['Latitude'].",".$item['Longitude']."],";
$array = $array.$a ;
}

$list= substr($array,0,-1);
echo json_encode($list);​

Это список точек, который я хочу отобразить на карте с помощью Яндекс.Карты API.

var myMap =new ymaps.Map('map',{
...
points =[
[55.831903,37.411961],[55.763338,37.565466]
],
}​
  1. Как мне передать данные переменной $list в points?
  2. Вопрос по корректности кода в php? Он вроде выводит верные данные, но нужно ли делать json_encode и можно ли заменить substr($array, 0, -1); на что-то внутри foreach?
 
Последнее редактирование:

Adelf

Administrator
Команда форума
PHP:
$list = [];
foreach($response as $item){
$list[] =[$item['Latitude'], $item['Longitude']];
}

echo json_encode($list);
Посмотри что получится. И никогда не делай работу json_encode руками. он и сам свое дело делает хорошо.
 

scorpion-ds

Новичок
В JS данные можно передать также как и в обычную HTML страницу:
HTML:
<script>
var myMap =new ymaps.Map('map',{
...
points =[
[<?php $x1; ?>,<?php $x2; ?>],[<?php $y1; ?>,<?php $y2; ?>]
],
}
</script>
 

scorpion-ds

Новичок
Да точно, ну или эхо добавить в мой пример, привык уже через twig вывод делать ...

Экранирование в данном случае можно и не делать, так как там должны возвращаться только числа, да и это просто для примера.
 
Сверху