Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.07.2016, 10:01
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

Как из php файла передать данные в переменную javascript
Через 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]
    ],
}


Как мне передать данные переменной $list в points?
Вопрос по корректности кода в php? Он вроде выводит верные данные, но нужно ли делать json_encode и можно ли заменить substr($array, 0, -1); на что-то внутри foreach?
Ответить с цитированием
  #2 (permalink)  
Старый 01.07.2016, 12:29
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

$array не должен быть строкой, похожей на массив, сделайте переменную полноценным массивом, в строку JSON ее превратит json_encode
Ответить с цитированием
  #3 (permalink)  
Старый 01.07.2016, 12:58
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

Можно пример как мне сделать массив из Latitude и Longitude в таком виде [55.831903,37.411961] ?
Ответить с цитированием
  #4 (permalink)  
Старый 01.07.2016, 13:02
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

например, так:
$array = [];
foreach ($response as $i){
	$arr = [$item['Latitude'],$item['Longitude']];
	array_push($array,$arr);
}
echo json_encode($array);
Ответить с цитированием
  #5 (permalink)  
Старый 01.07.2016, 13:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

foreach ($response as $item) в данном случае вообще некчемная операция. Если $response, это массив, вложения которого массивы хранящие значения координат, то вместо всего написанного достаточно json_encode($response).
Ответить с цитированием
  #6 (permalink)  
Старый 01.07.2016, 13:08
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

структура ответа больше:
[
{	
		“Id“:		“<Id>”,
		“OwnerId”:	”<Owner_id>”,
		“CitiId”:		“<Id города >”,
		“Number”:	”<номер >”,
		“Address”:	”<адрес >”,
		“Latitude”:	“<Широта>”,
		“Longitude”:	“<Долгота>”,
}
]

и еще более 20 полей. Можно тут обойтись без foreach ($response as $item) ?
Ответить с цитированием
  #7 (permalink)  
Старый 01.07.2016, 13:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от angelzzz
Можно тут обойтись без foreach ($response as $item) ?
Вы на свой код внимательно посмотрите, в нем нет никакого смысла, ибо вы пытаетесь в нем создать "самопальный" json_encode, а зачем?
Ответить с цитированием
  #8 (permalink)  
Старый 01.07.2016, 13:13
Интересующийся
Отправить личное сообщение для angelzzz Посмотреть профиль Найти все сообщения от angelzzz
 
Регистрация: 20.12.2011
Сообщений: 29

Ошибка syntax error, unexpected '[' в строке
$array = [];
Ответить с цитированием
  #9 (permalink)  
Старый 01.07.2016, 13:15
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

Сообщение от angelzzz Посмотреть сообщение
Ошибка syntax error, unexpected '[' в строке
$array = [];
удалите денвер и поставьте вебсервер с пыхой 5.4+
Ответить с цитированием
  #10 (permalink)  
Старый 01.07.2016, 13:16
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

laimas,
ну не хочет человек передавать 20 лишних параметров клиенту)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать данные в другую панель из выбранной строки таблицы. layout: 'card'. Пролетарий ExtJS 5 03.06.2015 22:53
Как проще всего передать переменную из JS в PHP? Zuko AJAX и COMET 13 10.04.2015 18:38
Как передать переменную во время инициализации плагина ixen jQuery 10 24.06.2014 12:06
javascript в конце php файла обработчика borodadada Events/DOM/Window 3 11.05.2013 21:37
есть переменная javascript надо передать ее в php как это сделать arahmanov Общие вопросы Javascript 5 08.08.2011 16:26