Bonjour,
* J'ai une liste d'ID (un par client) et � chaque client est associ� plusieurs marqueurs sur une carte leaflet.
* Je parcours la base de donn�e, trouve quel est le plus grand ID, et cr�e une markerMap (tableau � 2 dimensions) o� je pourrai associer IDs et marqueurs :
* Ensuite je r�cup�re en base de donn�es le nombre d'IDs et le nombre de marqueurs associ�s � chaque ID (qui est variable d'un client � l'autre) et fais 2 boucles imbriqu�es pour parcourir les IDs et leurs marqueurs associ�s :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 var markerMap = new Array( <?php include('get_maxId.php');?> ); // pour les IDs des clients for (i=0;i<markerMap.length;i++) { markerMap[i] = new Array(); // ici on mettra les IDs des marqueurs de chaque client (nombre indéterminé) };
*** Mon probl�me est dans cette 2�me boucle :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 //php pour récupérer en bdd et qui retourne un objet JSON (accessible ds la boucle via data[i]), puis : for (var i = 0; i < data.length; i++) { // boucle sur les IDs var combien_marqueurs = data[i].combien_marqueurs; var pseudoId = data[i].id; for (var j = 1; j <= combien_stories; j++) { // boucle sur les marqueurs //... } }
Dans cette boucle, je cr�e les marqueurs et les rentre dans la markerMap pour pouvoir les manipuler ensuite :
Tout va bien, le j est bien pris en compte. Mais, ensuite, j'utilise une fonction pour enregistrer la position des marqueurs dans la bdd lorsqu'ils sont d�plac�s sur la carte (on dragend) :
Code : S�lectionner tout - Visualiser dans une fen�tre � part eval('markerMap[clientId]['+j+'] = marker');
Et l�, bien s�r, c'est le drame! Lorsqu'on drag un marqueur la 2�me boucle en j++ est finie depuis longtemps et je ne peux enregistrer en base que le dernier marqueur de chaque utilisateur. Bien s�r �a fonctionne si je met le num�ro du marqueur en dur, mais j'aimerai �viter :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 marker.on('dragend', function(event) { var result = this.getLatLng(); var lati = result.lat; var longi = result.lng; $.post('set_position_marqueur.php', { marqueurId: j, latitude: lati, longitude: longi}); });
>>> QUESTION :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 if (j==1){ marker.on('dragend', ... $.post('set_poi.php', { marqueurId: 1, latitude: lati, longitude: longi}); } if (j==2){ marker.on('dragend', ... $.post('set_poi.php', { marqueurId: 2, latitude: lati, longitude: longi}); } 3,4,5 etc.
Y a-t-il un moyen de retrouver depuis le marqueur sa place dans la markerMap afin de savoir si on est en train de manipuler le marqueur 1, le 2, le 3... Pour l'id du client, je me sers d'une variable session_id, donc pas de soucis.
Je voudrais donc juste trouver markerMap[clientId][�a]
parser le tableau? faire une sorte de tableau reverse (je l'avais fait en flash)? cr�er une autre var qui stocke la "vraie" valeur de j? ou autre?
merci bcp!
Partager