Actualisation Json
Résolu
yohann3396
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
yohann3396 Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
yohann3396 Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
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 :/
[{"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:
- Actualisation des données de la carte sim
- Carte d'identité - Accueil - Services publics
- Débloquer carte sim sans code puk - Guide
- Whatsapp double sim - Guide
- Pile carte mere - Guide
- Recuperer contact carte sim - Guide
2 réponses
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.
{"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.
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 ? :)
$('.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 ? :)