Récupérer data sous ajax avec actualisation de page avec setInterval()
Bonjour,
Je suis débutant sur le monde de l’AJAX bien que cela fait plusieurs années qu’il est créé.
Si quelqu’un peut m’aider, je vous remercierai infiniment d’avance.
Bref, je crée une page avec rafraichissement d’une partie de la page avec setInterval() et je croie que ça marche bien.
Or, je veux récupérer la variable «var marker = data » pour pouvoir l’exploiter à nouveau pour la suite de mon code.
Le mieux c’est que je vous présente directement le code :
Base de données :
marker_id cat long lat name
1 12 47.522919 -18.902824 aladin
2 12 47.523549 -18.902311 aladin
3 12 47.523849 -18.902141 aladin
4 12 47.524383 -18.901877 aladin
5 10 47.525688 -18.901593 mickey
6 13 47.524820 -18.905732 clochette
7 13 47.524469 -18.905344 donald
8 13 47.524249 -18.905065 donald
9 13 47.523372 -18.904009 donald
page index2.php
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
| <html>
<head>
<title>Collecter données</title>
<script src="jquery/jquery.min.js"></script>
</head>
<body>
<div id='result'></div>
<form>
<input type="text" id='module' placeholder="référence du module">
</form>
<form name="form1">
<br><input type="checkbox" name="checkbox" onClick="myFunction();return true;">activer
</form>
<script>
$(document).ready(function(){});
</script>
<script language="Javascript">
function myFunction() {
//rafraichir toute les 1 seconde
setInterval(function(){
var moduleE = $('#module').val(); // recuperer la valeur dans le champ de text id="module"
$.post('validate.php',
{postmoduleE:moduleE},
function(data1){
$('#result').html(data1);
marker = data1; // marker sera réutilisé ultérieurement
}
);
}, 1000);
}
</script>
</body>
</html> |
---------------------------------
page validate.php
Code:
1 2 3 4 5 6 7 8 9 10
| <?php
include_once("model/BDD.php"); /// accès à la base de données
include_once("model/Map.php");
$vehic = $_POST['postmoduleE'];
$map=new Map();
$catMarkers = $map->Locali($vehic);
$allMarkersJson = json_encode($catMarkers); //// conversion du résultat en JSON
echo $allMarkersJson;
?> |
-------------------------------
page Map.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php
class Map extends BDD{
//__variable lié à la classe
//__Affiche la dernière les markers
function Locali ($vehic= "") {
$bdd = parent::getBdd();
$sql = "SELECT DISTINCT * ";
$sql .= "FROM `categorie`";
$sql .= "WHERE `cat` = '".$vehic."'";
$datas = $bdd->query($sql);
while ($resultat = $datas->fetch(PDO::FETCH_OBJ)) {
$count[] = $resultat;
}
return $count; // Accès au résultat
}
}
?> |
------------
Le résulat de var marker = [{"marker_id":"1","cat":"12","long":"47.522919","lat":"-18.902824"},{"marker_id":"2","cat":"12","long":"47.523549","lat":"-18.902311"},{"marker_id":"3","cat":"12","long":"47.523849","lat":"-18.902141"},{"marker_id":"5","cat":"12","long":"47.525688","lat":"-18.901593"}]
---------------------
Je veux que la valeur de var marker = data (dans index2.php) puisse être récupéré et réutilisé en temps réel dans un autre function pour que je puisse afficher mes markers de ma base de données.
---------------------
je pense que marker est un variable globale dans mon cas.
en somme ce que je veux faire c'est appeler marker dans une autre fonction par exemple de type :
Code:
1 2 3 4 5 6
|
function retraiter(){
recupr = new myFunction();
varMarker = marker
console.log(varMarker ); /// dans ce cas ci le log dit que varMarker est "undefinied"
} |
Du coup ma question est peut être mal posée, comment je doit récupérer ma variable marker (variable située dans setInterval() ) afin de l'utiliser dans un autre fonction.
Cela fais un moment que je travaille sur le sujet mais je n'arrive pas à le résoudre jusqu'à maintenant. Comment faire ?