JavaScript — как использовать функцию массива json_encode

Я хотел бы выбрать конкретную строку объекта, который был создан с помощью функции json_encode из массива php.

  while($locations=$req->fetch()){
$t = $locations->titre;
$la = $locations->latitude;
$lo = $locations->longitude;
$typ = $locations->type;
$ep = $locations->couleur;
$matrice[$i] = array($t, $la, $lo, $ep);
$i=$i+1;
}

1

Решение

Сначала вы должны сделать:

var locations = JSON.parse(<?php echo json_encode($matrice); ?>);

затем console.log(locations.toString()); проверить ваши данные

После, я думаю, что вы ищете Array.prototype.unshift () добавить элементы в начале массива:

locations.unshift(['ma position actuelle', 0, 0, 0]);

(locations[0] = ['ma position actuelle', 0, 0, 0] просто замените первый элемент массива)

тогда поменяю тебя на петлю

for (var i=1; i<Object.keys(locations).length; i++)

за

var i = 1, ln = locations.length;
for (i;i<ln;i++)
0

Другие решения

Вы можете получить доступ к любому элементу в JSONArray (или к любому массиву) в JS следующим образом:

object[i]

В вашем примере, если вы хотите получить второй и третий элемент:

for (...) {
var longitude = locations[i][1];
var latitude = locations[i][2];
}

Но я предлагаю вам использовать ключи и создавать JSONObjects вместо просто JSONArrays, например так:

  $locations = array();

while($locations=$req->fetch()){

$location = array(
'titre' => $locations->titre,
'latitude' => $locations->latitude,
'longitude' => $locations->longitude,
... etc
);

$locations[] = $location;

}

Таким образом, вы получите красивый JSONArray, заполненный JSONObjects, и сможете вызывать их из JS следующим образом:

//locations is a JSONArray
var locations = <?php echo json_encode($matrice); ?>;
//locations[0] is a JSONObject
var latitude = locations[0].latitude;
var latitude = locations[0].longitude;
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector