Actualisation Json

Résolu/Fermé
yohann3396 Messages postés 35 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 14 août 2016 - Modifié par yohann3396 le 2/05/2015 à 13:59
yohann3396 Messages postés 35 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 14 août 2016 - 2 mai 2015 à 21:57
Bonjour, j'ai un tableau Json de cette forme:
[{"id":"16","x":"1","y":"1"},{"id":"17","x":"3","y":"6"},{"id":"18","x":"1","y":"1"},{"id":"19","x":"1","y":"1"},{"id":"20","x":"1","y":"1"},{"id":"21","x":"1","y":"1"},{"id":"22","x":"1","y":"1"},{"id":"23","x":"1","y":"1"},{"id":"24","x":"1","y":"1"},{"id":"25","x":"1","y":"1"},{"id":"26","x":"1","y":"1"},{"id":"27","x":"1","y":"1"},{"id":"28","x":"1","y":"1"},{"id":"29","x":"1","y":"1"},{"id":"30","x":"1","y":"1"},{"id":"31","x":"1","y":"1"},{"id":"32","x":"1","y":"1"},{"id":"33","x":"1","y":"1"},{"id":"34","x":"1","y":"1"},{"id":"35","x":"1","y":"1"},{"id":"36","x":"1","y":"1"},{"id":"37","x":"1","y":"1"},{"id":"38","x":"1","y":"1"},{"id":"39","x":"1","y":"1"},{"id":"40","x":"1","y":"1"},{"id":"41","x":"1","y":"1"}]


Les valeurs se modifie et j'ai un code pour récupérer les valeurs modifier

var refresh12 = function() {
$.ajax({
url: "bougeperso.php",
dataType: "JSON",
success:
function(retour){
var json = retour;
console.log(retour);
$('.bougeperso').html(ppmap.moveObject(json.id, json.x, json.y, true, 500)) }
});

}
setInterval(refresh12, 1500);

Donc tout fonctionne mon console.log affiche bien les valeurs du tableau!
la page bougeperso.php :

<?php
header('Content-type: application/json');
session_start();
include('include_co.php');


$reponse = mysql_query('SELECT id, x, y FROM membre WHERE connecte="1" AND login <> "'.$_SESSION['login'].'";');
$array = array();
while ($donnees = mysql_fetch_assoc($reponse) ) {
$array[] = $donnees;
}


echo json_encode($array);

?>

Comment ca se fait que le code fonctionne quand je met juste une entrée de tableau mais quand il y a toutes les entrées la fonction ppmap.moveobject ne fonctionne pas.
En gros si je met id:17 x:4 y:4 ça va fonctionner mais quand il y a plusieurs entrées ca ne fonctionne plus :/
A voir également:

2 réponses

Utilisateur anonyme
2 mai 2015 à 16:46
Car la fonction json_encode de PHP quand elle n'a qu'une entrée (donc un tableau à une seule dimension) forme un objet JSON de cette forme

{"id":16,"x":1,"y":1}

Du coup ci tu fais maVar.id oui ça te retourne 16, mais quand tu as plusieurs entrées, donc un tableau à 2 dimensions, là le JSON retournée est sous forme de tableau contenant chaque objet JSON avec un index différent dans le tableau principal.

Comme ceci

[{"id":16,"x":1,"y":1},{"id":17,"x":2,"y":1}]

Du coup si par exemple tu veux l'id 16 tu dois faire maVar[0].id, pour le suivant c'est maVar[1].id (donc 17)

J'espère que tu as compris la différence entre un objet et un tableau, tu appelles pas les infos de la même façon.
0
yohann3396 Messages postés 35 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 14 août 2016
2 mai 2015 à 19:10
D'acc oui j'ai compris, mais comment faire pour que la ligne
$('.bougeperso').html(ppmap.moveObject(json.id, json.x, json.y, true, 500)) }
soit raffraichis pour CHAQUE ID toutes les 1.5sec!
Donc en gros que ça retourne tous X et Y pour chaque ID ? :)
0
Utilisateur anonyme
2 mai 2015 à 19:45
En gros tu veux le dernier à chaque fois?

Tu peux toujours extraire le dernier objet dans le tableau avant.

Essaye ça:

var json = retour.pop(); à la place de var json = retour;

Après tu peux aussi le faire du côté PHP, en mettant dans ta requête que tu veux que le dernier élément.
0
yohann3396 Messages postés 35 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 14 août 2016
2 mai 2015 à 21:57
merci, mais j'ai trouvé la solution :)
0