IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

Récupérer data sous ajax avec actualisation de page avec setInterval()


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 php : Sélectionner tout - Visualiser dans une fenêtre à part
    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 php : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    si l'on s'en tient à ton code tu mets dans la variable marker une chaine de caractères et non un objet de type JSON.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $('#result').html(data1);
    marker = data1; // marker sera réutilisé ultérieurement
    Précise le dataType ou parse la réponse, jQuery.post()

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Par défaut
    J'ai modifié cette fois ci le code par vu le commentaire, je pense que marker est cette fois ci en json.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function myFunction(marker) {
    		//rafraichir toute les 1 seconde
    		setInterval(function(marker){
    			var moduleE = $('#module').val(); // recuperer la valeur dans le champ de text id="module"
    			 $.ajax({
    				type: 'POST',
    				url: 'validate.php',
    				dataType: 'json',
    				data: {'postmoduleE': moduleE},
    				success: function(data) {
    					marker = data;
    					//alert(marker);
    					console.log("le marker en JSON = "+marker);	
    				}
    			});
     
     
    		}, 1000);
    Mais comment dois-je récupérer cette variable marker?
    J'ai fait comme ceci pour l'avoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function retraiter(){
     recupr = new myFunction();
     varMarker = marker
    console.log(varMarker ); /// dans ce cas ci le log dit que varMarker est "undefinied"
    }
    mais mon code ne marche pas encore car j'arrive pas à récupérer marker. J'ai aussi essayé de mettre un setInterval() dans retraiter pour voir si marker est récupérer en temps réél par varMarker.

    Comment dois-je m'y prendre?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Place ta variable en global
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    var marker;
    function myFunction() {
        //rafraichir toute les 1 seconde
        setInterval(function () {
            var moduleE = $('#module').val(); // recuperer la valeur dans le champ de text id="module"
            $.ajax({
                type: 'POST',
                url: 'validate.php',
                dataType: 'json',
                data: {
                    'postmoduleE': moduleE
                },
                success: function (data) {
                    marker = data;
                    console.log('le marker en JSON = ' + marker);
                }
            });
        }, 1000);
    }
    par contre le mieux serait d'utiliser tes données dans ta fonction success car elle change potentiellement toutes les secondes ce qui me paraît plutôt rapide d'ailleurs !

Discussions similaires

  1. [Débutant] combobox wpf avec du binding fonctionne avec clavier mais pas avec souris
    Par Laurent.solano dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 05/02/2016, 17h54
  2. Réponses: 1
    Dernier message: 29/04/2010, 08h23
  3. Comment rester sur la même page avec actualiser ?
    Par schnuky dans le forum Débuter
    Réponses: 5
    Dernier message: 30/07/2009, 18h55
  4. Récupérer le code HTML d'une page avec Delphi 7
    Par PsyKroPack dans le forum Web & réseau
    Réponses: 5
    Dernier message: 06/02/2003, 21h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo