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

jQuery Discussion :

Modifier via Ajax des marqueurs google map insérés dans une base de donnée


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conducteur de travaux
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de travaux

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Modifier via Ajax des marqueurs google map insérés dans une base de donnée
    Bonjour,

    Je cherche à insérer des marqueurs google map en fonction d'une sélection faite par l'utilisateur.

    Mes marqueurs sont répertoriés dans une base de donnée. La sélection de l'utilisateur se fait par l'intermédiaire d'une balise input de type text.

    A chaque fois que l'utilisateur réalise une nouvelle sélection je souhaite afficher les marqueurs correspondants.

    Code source:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="date" value="Entrer une date"/>

    Code javascript:
    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
    $('#date').change(function(){
    var date=$(this).val();
    $.post(
            'connexion.php', // Mon fichier cible côté serveur.
    	'date=' + date, 
    	function (data){
     
    	     var markers=[[data.lat,data.lng],]; // Récupération des données Json
    	     var titles=data.dj;
     
    	        for(var i=0,I=markers.length;i<I; i++){  // Affichage des marqueurs
    		     addmarker(markers[i]);
    	        }
    		function addmarker(latlng){}  // Ma fonction addmarker sans le contenu (il fonctionne)
     
            },
            'json' 
    );
     
    });
    Code connexion.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
    <?php
    // CONNEXION BDD
    $req = $bdd->prepare("SELECT * FROM table WHERE date= ? ");
    $req->execute(array($_POST['date']));
    while ($donnees = $req->fetch()){
            $lat= $donnees["lat"];
    	$lng= $donnees["lng"];
    	$dj= $donnees["dj1"];
    }
    $req->closeCursor();
     
    echo json_encode($lat);
    echo json_encode($lng);
    echo json_encode($dj);
     
    ?>

    Je pense que mon problème vient de la transposition du code Json mais je ne m'en sors pas, je n'ai pas bien compris comment manipuler celui-ci.

    Pouvez vous me donner un coup de main svp.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo json_encode($lat);
    echo json_encode($lng);
    echo json_encode($dj);
    Tu indiques dans ton appel AJAX que tu comptes recevoir un objet JSON, mais si tu en renvoies trois différents, ce n'est plus la même chose.
    En gros, un objet JSON est une chaine de caractères ayant un formatage précis et relativement strict.
    Si tu concatènes deux chaines JSON, tu n'en obtiens pas un global car le formatage n'est plus respecté.

    La solution serait de passer par un niveau en plus dans le JSON (en adaptant le JavaScript associé au traitement), par exemple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo json_encode(array(
        "lg" => $lng,
        "lng" => $lng,
        "dj" => $dj
    ));
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre à l'essai
    Homme Profil pro
    Conducteur de travaux
    Inscrit en
    Août 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de travaux

    Informations forums :
    Inscription : Août 2014
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Ca y est tout fonctionne comme je le voulais. Encore un grand merci Bovino!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrer des fichiers word, pdf, etc. dans une base de données
    Par mallsoul dans le forum Décisions SGBD
    Réponses: 23
    Dernier message: 10/09/2014, 15h48
  2. Réponses: 1
    Dernier message: 04/10/2011, 13h05
  3. Réponses: 1
    Dernier message: 09/04/2011, 15h08
  4. [TinyMCE] Récupérer le contenu d'un textearea TinyMCE inséré dans une base de donnée
    Par vivicente dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 13/10/2009, 15h23
  5. Réponses: 5
    Dernier message: 25/05/2009, 15h58

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