Я хотел бы выбрать конкретную строку объекта, который был создан с помощью функции 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;
}
Сначала вы должны сделать:
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++)
Вы можете получить доступ к любому элементу в 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;