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 :

google maps, php, mysql


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut google maps, php, mysql
    Bonjour à tous,

    je tente de mettre une google maps sur mon site avec des marqueurs enregistrés dans une BDD.

    pour cela, j ai tenté de suivre ce tuto : https://developers.google.com/maps/a.../phpsqlajax_v3

    Ma carte s'affiche mais pas les marqueurs qui vont avec :-/

    J'ai créé 3 fichiers :
    connect.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $username="root";
    $password="";
    $database="data_marker";
    ?>

    show_map.php
    Code html : 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
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    <!DOCTYPE html >
      <head>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
        <title>PHP/MySQL et Google Maps Example</title>
        <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"
                type="text/javascript"></script>
        <script type="text/javascript">
        //<![CDATA[
     
        var customIcons = {
          restaurant: {
            icon: 'http://labs.google.com/ridefinder/images/mm_20_blue.png'
          },
          bar: {
            icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png'
          }
        };
     
        function load() {
          var map = new google.maps.Map(document.getElementById("map"), {
            center: new google.maps.LatLng(47.6145, -122.3418),
            zoom: 13,
            mapTypeId: 'roadmap'
          });
          var infoWindow = new google.maps.InfoWindow;
     
          // Change this depending on the name of your PHP file
          downloadUrl("phpsqlajax_genxml.php", function(data) {
            var xml = data.responseXML;
            var markers = xml.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
              var name = markers[i].getAttribute("name");
              var address = markers[i].getAttribute("address");
              var type = markers[i].getAttribute("type");
              var point = new google.maps.LatLng(
                  parseFloat(markers[i].getAttribute("lat")),
                  parseFloat(markers[i].getAttribute("lng")));
              var html = "<b>" + name + "</b> <br/>" + address;
              var icon = customIcons[type] || {};
              var marker = new google.maps.Marker({
                map: map,
                position: point,
                icon: icon.icon
              });
              bindInfoWindow(marker, map, infoWindow, html);
            }
          });
        }
     
        function bindInfoWindow(marker, map, infoWindow, html) {
          google.maps.event.addListener(marker, 'click', function() {
            infoWindow.setContent(html);
            infoWindow.open(map, marker);
          });
        }
     
        function downloadUrl(url, callback) {
          var request = window.ActiveXObject ?
              new ActiveXObject('Microsoft.XMLHTTP') :
              new XMLHttpRequest;
     
          request.onreadystatechange = function() {
            if (request.readyState == 4) {
              request.onreadystatechange = doNothing;
              callback(request, request.status);
            }
          };
     
          request.open('GET', url, true);
          request.send(null);
        }
     
        function doNothing() {}
     
        //]]>
     
      </script>
     
      </head>
     
      <body onload="load()">
        <div id="map" style="width: 500px; height: 300px"></div>
      </body>
     
    </html>

    et phpsqlajax_genxml.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
    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
    <?php
     
    require("connect.php");
     
    // Start XML file, create parent node
     
    $dom = new DOMDocument("1.0");
    $node = $dom->createElement("markers");
    $parnode = $dom->appendChild($node);
     
    // Opens a connection to a MySQL server
     
    $connection=mysql_connect ('localhost', $username, $password);
    if (!$connection) {  die('Not connected : ' . mysql_error());}
     
    // Set the active MySQL database
     
    $db_selected = mysql_select_db($database, $connection);
    if (!$db_selected) {
      die ('Can\'t use db : ' . mysql_error());
    }
     
    // Select all the rows in the markers table
     
    $query = "SELECT * FROM markers WHERE 1";
    $result = mysql_query($query);
    if (!$result) {
      die('Invalid query: ' . mysql_error());
    }
     
    header("Content-type: text/xml");
     
    // Iterate through the rows, adding XML nodes for each
     
    while ($row = @mysql_fetch_assoc($result)){
      // ADD TO XML DOCUMENT NODE
      $node = $dom->createElement("marker");
      $newnode = $parnode->appendChild($node);
      $newnode->setAttribute("name",$row['name']);
      $newnode->setAttribute("address", $row['address']);
      $newnode->setAttribute("lat", $row['lat']);
      $newnode->setAttribute("lng", $row['lng']);
      $newnode->setAttribute("type", $row['type']);
    }
     
    echo $dom->saveXML();
     
    ?>


    J avoue que je ne vois pas où ça bloque :-/

    Avez vous déjà été dans le meme cas ?

    Si vous avez des pistes n'hésitez pas !



    Merci !!!

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    • as tu pris soin de renseigner YOUR_API_KEY ?
    • as tu vérifié que ton fichier XML correspond à ton attente ?
    • as tu des messages d'erreur dans ta console, F12 ?
    • comment testes tu en mode serveur local ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonjour NoSmoking,

    Merci pour ta réponse !


    oui mon API Key est correcte je pense (la map s'affiche)

    j ai recuperé le fichier XML du tuto de google donc il devrait etre correct

    en effet, lorsque je fais F12, il détecte une erreur :
    ncaught TypeError: Cannot read property 'documentElement' of null (ligne 32 de Show_map)
    je teste en ligne directement ;-)

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Dans ce cas je pencherais pour la réponse faite dans cette discussion et qui à rapport au fichier XML.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    merci NoSmoking ;-)

    je soupçonne aussi que l erreur vienne de la version 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
    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
    <?php
     
    require("phpsqlajax_dbinfo.php");
     
    // Start XML file, create parent node
     
    $dom = new DOMDocument("1.0");
    $node = $dom->createElement("markers");
    $parnode = $dom->appendChild($node);
     
    // Opens a connection to a MySQL server
     
    $connection=mysql_connect ('localhost', $username, $password);
    if (!$connection) {  die('Not connected : ' . mysql_error());}
     
    // Set the active MySQL database
     
    $db_selected = mysql_select_db($database, $connection);
    if (!$db_selected) {
      die ('Can\'t use db : ' . mysql_error());
    }
     
    // Select all the rows in the markers table
     
    $query = "SELECT * FROM markers WHERE 1";
    $result = mysql_query($query);
    if (!$result) {
      die('Invalid query: ' . mysql_error());
    }
     
    header("Content-type: text/xml");
     
    // Iterate through the rows, adding XML nodes for each
     
    while ($row = @mysql_fetch_assoc($result)){
      // ADD TO XML DOCUMENT NODE
      $node = $dom->createElement("marker");
      $newnode = $parnode->appendChild($node);
      $newnode->setAttribute("name",$row['name']);
      $newnode->setAttribute("address", $row['address']);
      $newnode->setAttribute("lat", $row['lat']);
      $newnode->setAttribute("lng", $row['lng']);
      $newnode->setAttribute("type", $row['type']);
    }
     
    echo $dom->saveXML();
     
    ?>


    Apparemment, il faudrait que je passe à mysqli

    est ce que ce code te semble correct ? (j ai modifié la connection, le query...)

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
     
    require("connect_map.php");
     
    // Start XML file, create parent node
     
    $dom = new DOMDocument("1.0");
    $node = $dom->createElement("markers");
    $parnode = $dom->appendChild($node);
     
    // Opens a connection to a MySQL server
     
    $connection=mysqli_connect ('mysql.hostinger.fr', 'u763036331_root', 'famillechabot', 'u763036331_ccbdd');
     
    // On créé la requête
    $req = "SELECT * FROM markers";
     
    // on envoie la requête
    $res = $connection->query($req);
     
     
    header("Content-type: text/xml");
     
    // Iterate through the rows, adding XML nodes for each
     
    while ($row = @mysql_fetch_assoc($res)){
      // ADD TO XML DOCUMENT NODE
      $node = $dom->createElement("marker");
      $newnode = $parnode->appendChild($node);
      $newnode->setAttribute("name",$row['name']);
      $newnode->setAttribute("address", $row['address']);
      $newnode->setAttribute("lat", $row['lat']);
      $newnode->setAttribute("lng", $row['lng']);
      $newnode->set_attribute("type", $row['type']);
     
     
    }
     
    echo $dom->saveXML();
     
    ?>

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    lorsque je vais dans mon navigateur sur map_xml.php, j ai ce message :

    This page contains the following errors:

    error on line 2 at column 6: XML declaration allowed only at the start of the document
    Below is a rendering of the page up to the first error.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonsoir,

    je fais un peu du sur place :-/
    je ne parviens pas à avancer. ma map s'affiche mais pas les marqueurs.

    je n'arrive pas à trouver l'erreur :-/

    si vous avez des idées ou des questions n'hesitez pas !

    A tres vite

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    si vous avez des idées[...]
    je te les ai déjà exprimé dans le post #4, met nous le fichier XML généré pour que l'on puisse se rendre compte si cela viens bien de là.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2016
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonjour à tous,

    j'ai réussi !

    j'ai suivi ce tuto : http://tips4php.net/2010/10/use-php-...g-data-on-map/

    ça ne passe pas par du XML, seulement du PHP donc bcp plus simple !

    Merci pour votre aide !

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Si cela marche c'est tant mieux mais « pourrir » le code avec des
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ("addMarker($lat, $lon,'<b>$name</b><br/>$desc');\n");
    il me semble que la manipulation d'un objet aurait été quand même plus élégant, les données restant accessoirement disponibles.

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

Discussions similaires

  1. [MySQL] Google maps, php, mysql
    Par costiflex dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/10/2016, 18h32
  2. Réponses: 0
    Dernier message: 14/12/2012, 14h10

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