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

APIs Google Discussion :

Récupérer une adresse via variable php pour afficher google map


Sujet :

APIs Google

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut Récupérer une adresse via variable php pour afficher google map
    Bonjour à tous,

    Alors voici mon problème.

    Je créé un annuaire et je souhaite afficher un plan pour chaque adresse de mon annuaire lorsque je clique sur le bouton "afficher le plan", un peu comme dans les Pages Jaunes.

    J'ai réussi à faire ceci grâce à un super tuto :

    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
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    <!DOCTYPE html>
    <html lang="fr">
    	<head>
    		<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
    		<meta charset="UTF-8" />
    		<title>Plan</title>
    		<style type="text/css">
    			html {
    				height: 100%
    			}
    			body {
    				height: 100%;
    				margin: 0;
    				padding: 0
    			}
    			#EmplacementDeMaCarte {
    				height: 100%
    			}
    		</style>
    		<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
    		<script type="text/javascript">
     
    var myGeocoder = new google.maps.Geocoder();
     
    var GeocoderOptions = {
        'address' : '24 av Château d\'Eau, 33700 MERIGNAC',
        'region' : 'FR'
    }
     
    function GeocodingResult( results , status )
    {
       // Traitement du résultat
    }
     
    myGeocoder.geocode( GeocoderOptions, GeocodingResult );
     
    window.onload = function() {
    	// Une variable pour contenir notre future marker
    	var myMarker = null;
     
    	// Des coordonnées de départ
    	var myLatlng = new google.maps.LatLng(-34.397, 150.644);
     
    	// Les options de notre carte
    	var myOptions = {
    		zoom: 15,
    		center: myLatlng,
    		mapTypeId: google.maps.MapTypeId.ROADMAP
    	};
     
    	// On créé la carte
    	var myMap = new google.maps.Map(
    		document.getElementById('EmplacementDeMaCarte'),
    		myOptions
    	);
     
    	// L'adresse que nous allons rechercher
    	var GeocoderOptions = {
    	    'address' : '24 av Château d\'Eau, 33700 MERIGNAC',
    	    'region' : 'FR'
    	}
     
    	// Notre fonction qui traitera le resultat
    	function GeocodingResult( results , status )
    	{
    	  // Si la recher à fonctionné
    	  if( status == google.maps.GeocoderStatus.OK ) {
     
    	    // S'il existait déjà un marker sur la map,
    	    // on l'enlève
    	    if(myMarker != null) {
    	      myMarker.setMap(null);
    	    }
     
    	    // On créé donc un nouveau marker sur l'adresse géocodée
    	    myMarker = new google.maps.Marker({
    	      position: results[0].geometry.location,
    	      map: myMap,
    	      title: "MA MAISON"
    	    });
     
    	    // Et on centre la vue sur ce marker
    	    myMap.setCenter(results[0].geometry.location);
     
    	  } // Fin si status OK
     
    	} // Fin de la fonction
     
    	// Nous pouvons maintenant lancer la recherche de l'adresse
    	var myGeocoder = new google.maps.Geocoder();
    	myGeocoder.geocode( GeocoderOptions, GeocodingResult );
    }
    		</script>
    	</head>
     
    	<body>
    		<div id="EmplacementDeMaCarte" style="width:620px; height:430px;"></div>
    		<noscript>
    			<p>Attention : </p>
    			<p>Afin de pouvoir utiliser Google Maps, JavaScript doit être activé.</p>
    			<p>Or, il semble que JavaScript est désactivé ou qu\'il ne soit pas supporté par votre navigateur.</p>
    			<p>Pour afficher Google Maps, activez JavaScript en modifiant les options de votre navigateur, puis essayez à nouveau.</p>
    		</noscript>
    	</body>
    </html>
    Mais je voudrai que l'adresse soit récupérée via ma base d'adresse. Je suppose avec des variables php, mais je n'arrive pas du tout à faire fonctionner ça...

    Quelqu'un a t'il une idée ?

    Merci pour votre aide, c'est assez urgent !!!
    Merci
    Karine

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Voilà le fichier à partir duquel je souhaiterais basculer sur le plan...

    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
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        <head>
          <title>Infirmières libérales (cabinets et soins à domicile) - Rechercher une infirmière</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
          <meta http-equiv="Content-Language" content="fr" />
    	<meta name="description" content="Annuaire de mise en relation entre les particuliers et les infirmières libérales (à domicile)" />
          <link rel="stylesheet" type="text/css" href="../css/style.css"/> 
        </head>
     
    <body>
     
    <?php
    	if(isset($_GET['requete']) && $_GET['requete'] != NULL)
    	{
    	mysql_connect('localhost','root','root');
    	mysql_select_db('annuaire-infirmieres'); 
     
    $requete = htmlspecialchars($_GET['requete']); 
    //pagination
    // comptage du nombre d'infirmières
    // ********************************
    $sql = "SELECT COUNT(id) as nbInf FROM infirmieres WHERE nom LIKE '%$requete%'";
    $req = mysql_query($sql) or die(mysql_error());
    $data = mysql_fetch_assoc($req);
    //print_r($data); // affichage nombre d'infirmières trouvé
    $nbInf = $data['nbInf'];
    $parPage = 5;
    $nbPage = ceil($nbInf/$parPage);
    //echo "<br/> nombre de pages =  ".$nbPage."<br/>"; // affichage du nombre de pages pour debug
    if(isset($_GET['p']) && $_GET['p']>0 && $_GET['p']<=$nbPage) {
    	$pageCourante = $_GET['p'];
    	}
    	else {
    		$pageCourante = 1;
    	}
     
    // requête pour pagination ??
    $sql = "SELECT * FROM infirmieres WHERE nom LIKE '%$requete%' ORDER BY id DESC LIMIT ". (($pageCourante-1)*$parPage). ",$parPage";
    //echo "Requête : ".$sql." <br/>"; // on affiche la requête pour debug
    $req = mysql_query($sql) or die (mysql_error());
     
     
    // affichage pagination
    for($i=1;$i<$nbPage+1;$i++) {
    	if($i==$pageCourante) {
    		echo " / $i / ";
    	}
    	else {		
    	echo "<a href=\"rechercher_nom.php?requete=$requete&p=$i\"> $i </a> ";
    	}
    }
    //fin pagination
     
    //comptage du nbre de résultats trouvés pour affichage
    $query = mysql_query("SELECT COUNT(*) as total FROM infirmieres WHERE nom LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error()); 
    	$nb_resultats = mysql_result($query, 0);
    		if($nb_resultats != 0) 
    			{
    //echo "<br/> comptage : ".$query."<br/>"; // affichage pour debug
    ?>
    <!--affichage des résultats-->
    <h3>Résultats de votre recherche.</h3>
    <h2>Nous avons trouvé <? echo $nb_resultats;
    if($nb_resultats > 1) { echo ' résultats'; } else { echo ' résultat'; } 
    ?>
     dans votre commmune :<br/>
    <br/></h2>
    <?
    //mysql_data_seek($req, 0);
    // affichage des adresses
    while($donnees = mysql_fetch_array($req )) 
    	{
    	?>
    		<br/><div id="affichage">
    		<? echo $donnees['nom']?><br/>
    		<? echo $donnees['adresse']?><br/>
    		<? echo $donnees['code_postal']?>
    		<? echo $donnees['ville']?><br/>
     
    		<input class="bouton-inscription-affichernum" type="submit" value="Afficher le numéro">
    		<a href="afficherplan.php"><input class="bouton-inscription-affichernum" type="submit" value="Afficher le plan"></a>
    		<a href="modifier_coord.php"><input class="bouton-inscription-affichernum" type="submit" value="Modifier"></a>
     
    	<br/><br/>
    		</div>
    <?
    } 
    // affichage pagination 
    for($i=1;$i<$nbPage+1;$i++) {
    	if($i==$pageCourante) {
    		echo " / $i / ";
    	}
    	else {		
    	echo "<a href=\"rechercher_nom.php?requete=$requete&p=$i\"> $i </a> ";
    	}
    }
    // fin pagination
    ?>
    <br/>
    <br/>
     
    <a href="rechercher_nom.php"> <input class="bouton-inscription-recherche" type="button" value="FAIRE UNE NOUVELLE RECHERCHE"> </a>
    <a href="../index.php"> <input class="bouton-inscription-recherche" type="button" value="RETOUR A L'ACCUEIL"> </a>
     
    <?
    } 
    else
    { 
    ?>
    <h3>Pas de résultats</h3>
    <p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_GET['requete']; ?>". <a href="rechercher_nom.php">Réessayez</a> avec autre chose.</p>
    <?
    }
    mysql_close(); 
    }
    else
    { 
    ?>
    <h2>Vous allez faire une recherche dans notre annuaire des infirmières. </br> Saisissez un nom pour réaliser une recherche.</h2>
     	<form action="rechercher_nom.php" method="GET" class="position-form">
      		<div id="champrecherche">
    			<label for="nom">Nom : </label><input type="text" name="requete" size="50" onchange="javascript:this.value=this.value.toUpperCase();">
    			<input type="submit" class="bouton-inscription-recherche" value="Ok">
    			<a href="../index.php"><input class="bouton-inscription-accueil" type="button" value="Retour à l'accueil"/></a>
    		</div>
    	</form>
    <?
    }
    /*	include('../includes/bas.php');*/
    ?>
    </body>
    </html>

  3. #3
    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,
    Je créé un annuaire et je souhaite afficher un plan pour chaque adresse de mon annuaire lorsque je clique sur le bouton "afficher le plan"...
    La question est de savoir combien d'entrées possède ton annuaire, car au moins 2 façons de procéder peuvent se présenter
    - un nombre pas trop important de data et tu mets tout sur la même page et tu affiches à la demande.
    - un nombre supérieur à pas trop important, , tu envoies les données et tu construis ta page coté serveur à partir de celles ci.

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    J'ai grosso modo 62 000 adresses...
    je pensais afficher mes adresses via des variables php dans mon premier fichier (à la place de l'adresse renseignée à la main pour l'exemple).
    Que ce soit l'une ou l'autre des propositions à retenir, je vais avoir bien besoin d'aide !!! Car je ne sais pas du tout comment faire le lien entre les 2 ? Je passe les paramètres par l'url ?
    Je patauge...

  5. #5
    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
    Je pense qu'il faut que tu réfléchisses sérieusement à ce que tu souhaites faire, car afficher 62000 adresses dans une page cela me paraît pour le moins très moyen.

    Il te faudrait peut être commencer par regrouper ces adresses en créant des catégories (métiers, ville...), comment prévois tu l'interface avec ton visiteur, saisie à la main avec, ou sans, autocomplétion, pas de saisie mais un choix dans une liste...

    Pour ce qui est de la création de la page, tu peux effectivement, comme déjà dit, la "faire" coté serveur après envoi des données ou encore la mettre à jour dans la page en cours après récupération des infos via la technique Ajax par exemple.

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    ah mais ça ça fonctionne déjà.
    l'utilisateur saisi soit le nom, la ville ou le CP et j'affiche les résultats, comme dans les pages jaunes en fait.
    J'ai limité l'affichage à 50 adresses avec une pagination par 5 adresses.
    Pas d'auto complétion pour l'instant...

    En fait, quand j'affiche la liste d'adresse pour chaque adresse j'ai un bouton "afficher le plan".
    j'ai réussi à récupérer mon adresse sur ma page carte (donc en cliquant sur "afficher le plan" en passant l'id de mon adresse par l'url), j'ai réussi à afficher mon adresse en question sur cette nouvelle page, mais je n'arrive pas à intégrer ces variables php dans le code javascript pour construire la carte... j'essaie des echo dans tous les sens, je n'y arrive pas...

  7. #7
    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
    Finalement tu t'en es sorti comment?

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

Discussions similaires

  1. Récupérer une variable php pour jquery
    Par chrozak dans le forum jQuery
    Réponses: 11
    Dernier message: 10/06/2013, 10h22
  2. [Google Maps] Géolocaliser une adresse postale avec l'API V3
    Par LeonCosnyd dans le forum APIs Google
    Réponses: 0
    Dernier message: 21/09/2010, 14h36
  3. Réponses: 14
    Dernier message: 05/05/2008, 15h35
  4. [MySQL] Code PhP pour afficher une BDD
    Par FSDonwload dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2008, 00h15
  5. [SQL] Puis-je insérer une variable PHP pour déterminer ORDER BY ?
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/05/2006, 01h41

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