2 pièce(s) jointe(s)
[PHP, JS] Recuperer la derniere valeur d'un tableau
Bonjour, j'ai un probleme tout bete mais je n'arrive a le resoudre pour le moment.
J'ai un tableau qui est rempli comme cela:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| table>
<thead>
<tr>
<th>Ref.</th>
<th>Heure</th>
<th>Data</th>
<th>Lat</th>
<th>Long</th>
<th>Alt</th>
<th>Temp</th>
<th>SNR</th>
<th>Qualite_Liaison</th>
</tr>
</thead>
<tbody>
<?php
foreach($data['data'] as $reg){
//print_r($data);
?>
<tr>
<td><?php echo $reg['device'];?></td>
<td><?php echo date(DATE_RFC2822, $reg['time']);?></td>
<td><?php
$data= $reg['data']; //frame data
echo $data;
?></td>
<td><?php
$lat_str = substr($data, 0, 6); //6 premiers caracteres
$lat_int = hexdec($lat_str); //conversion hexa -> decimal
$lat_result = $lat_int/(float)(0xFFFFFF/360.0)-180; //conversion, precision
echo $lat_result;
?></td>
<td><?php
$long_str = substr($data, 6, 6);
$long_int = hexdec($long_str);
$long_result = $long_int/(float)(0xFFFFFF/180.0)-90; //conversion, precision
echo $long_result;
?></td>
<td><?php
$alt_str = substr($data, 12, 4);
$alt_int = hexdec($alt_str);
echo $alt_int;
?></td>
<td><?php
$temp_str = substr($data, 16, 4);
$temp_int = hexdec($temp_str);
$temp_result = $temp_int/(float)(0xFFFF/200.0)-128; //conversion, precision
echo $temp_result;
?></td>
<td><?php echo $reg['snr'];?></td>
<td><?php
$qualite= $reg['linkQuality'];
switch ($qualite) {
case "EXCELLENT":
echo "Excellente";
break;
case "GOOD":
echo "Bonne";
break;
case "AVERAGE":
echo "Moyenne";
break;
case "LIMIT" :
echo "Faible";
break;
}
?>
</td>
</tr>
<?php
}
?>
</tbody>
</table> |
Il se rempli automatiquement a partir d'une sorte de base de donnee.
A partir de ce tableau, je veux recuperer les trois DERNIERES valeurs d'altitude, longitude et de latitude pour les afficher sur une map google:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| <script type="text/javascript">
var map;
var initialize;
var lat = '<?php echo $lat_result; ?>';
var long = '<?php echo $long_result; ?>';
initialize = function(){
var latLng = new google.maps.LatLng(lat, long); // Correspond au coordonnées du gps
var myOptions = {
zoom : 14, // Zoom par défaut
center : latLng, // Coordonnées de départ de la carte de type latLng
mapTypeId : google.maps.MapTypeId.TERRAIN, // Type de carte, différentes valeurs possible HYBRID, ROADMAP, SATELLITE, TERRAIN
maxZoom : 20
};
map = new google.maps.Map(document.getElementById('map'), myOptions);
var marker = new google.maps.Marker({
position : latLng,
map : map,
title : "Position voiture"
});
var contentMarker = [
'<div id="containerTabs">',
'<div id="tabs">',
'<p id="voiture">Baloon</p>',
'<p id="voiture">Alt:<?php echo $lat_result; ?></p>',
'<p id="voiture">Long:<?php echo $long_result; ?></p>',
'<p id="voiture">Alt:<?php echo $alt_int; ?></p>',
'</div>',
'</div>',
'</div>'
].join('');
var infoWindow = new google.maps.InfoWindow({
content : contentMarker,
position : latLng
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map,marker);
});
google.maps.event.addListener(infoWindow, 'domready', function(){ // infoWindow est biensûr notre info-bulle
jQuery("#tabs").tabs();
});
};
initialize();
</script> |
Mon probleme est le suivant: a chaque fois je recupere les valeurs qui sont le plus en bas de mon tableau, c'est a dire celles qui datent le plus. Moi je voudrais recuperer les valeurs qui viennent d'etre envoyees pour que mon marker s'actualise sur la carte.
Ce sera peut etre plus parlant avec des captures d'ecran. On voit bien sur les images que les coordonnees affichees sur la carte correspondent a celles presentes tout en bas du tableau alors que je voudrais celle qui sont tout en haut.
Pièce jointe 388125
Pièce jointe 388133
Merci pour votre aide!