Problème fonction et coordonnées BDD

gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011 - 25 août 2010 à 12:21
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011 - 26 août 2010 à 22:17
Bonjour,
Je suis nouveau ici et novice en PHP.

Voila je souhaite faire le lien entre les coordonnées de ma BDD et le script google MAP API.

Trop de mal!!!

Merci pour votre aide,
Voici le code :

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">

\\\\\\\\\\ma tentative de code qui ne fonctionne pas :
function coor($cod){

          $conn = db_connect();
if(!$conn)
return false;

          $sql1 = "SELECT lat FROM maps_ville WHERE cp='$cod'";
          $sql2 = "SELECT lon FROM maps_ville WHERE cp='$cod'";
          
          $query1 = @mysql_query($sql1);
          $query2 = @mysql_query($sql2);

if( @mysql_num_rows($query1) == 0 )
return false;

if( @mysql_num_rows($query2) == 0 )
return false;

$result1 = result_to_array($query1);
return $result1;

$result2 = result_to_array($query2);
return $result2;
}



/////////Code google qui fonctionne, j'ai changé les coordonées en $result1, $result2  ligne 4:

function initialize($coor){


     var centreCarte = new google.maps.LatLng($result1, $result2);
     var optionsCarte = {
          zoom: 8,
          center: centreCarte,
          mapTypeId: google.maps.MapTypeId.ROADMAP
     }
     var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
}
</script>



Php? Passionnant!!

26 réponses

gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
25 août 2010 à 14:18
Quelqu'un saurait m'aider pour allez chercher les coordonnées dans ma BDD, puis les récupérer dans le script google MAP.



Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
25 août 2010 à 15:04
Bonjour.
J'ai l'impression que tu as fait un mélange entre une foncion php et une fonction javascript...
T'as plusieurs solutions :
Soit, tu faire un script php, qui récupère tes données dans ta bdd et qui génére le javascript.
Soit tu fais un javascript qui utilise ajax pour appelé une page php qui te renvoie les paramètres que tu veux (plus dur à mettre en place).

Cdt
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
25 août 2010 à 15:15
En faite j'essaie d'apprendre avec un script que je modifie alors c pas simple. Merci de m'avoir répondu.

Ok pour ta 1ère solution. comment puis-je procéder dans ce cas?


Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
25 août 2010 à 15:29
En gros ce qu'il faut faire
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">

<?php
  // partie php executé coté serveur.
  $conn = db_connect();
  $sql1 = "SELECT lat FROM maps_ville WHERE cp='$cod'";
  $sql2 = "SELECT lon FROM maps_ville WHERE cp='$cod'";
  $query1 = @mysql_query($sql1);
  $query2 = @mysql_query($sql2);
  $result1 = result_to_array($query1);
  $result2 = result_to_array($query2);
?>
function initialize(){


     var centreCarte = new google.maps.LatLng(<?php echo $result1;?>, <?php echo $result2;?>);
     var optionsCarte = {
          zoom: 8,
          center: centreCarte,
          mapTypeId: google.maps.MapTypeId.ROADMAP
     }
     var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);
}

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
25 août 2010 à 17:13
A oui c ça!
J'ai changé les $code (code postal) par $ville_name car en effet un code postal peu définir plusieurs villes.

en Faite j'ai bien le bloc de la carte qui s'affiche mais en gris (sans carte).
J'ai essayé d'afficher :
<?php echo $code;?> ; <?php echo $ville_name;?> ;<?php echo $result1;?>;<?php echo $result2;?>

Le code postal et la ville s'affichent bien mais les result 1 et 2 affiche Array. Est-ce normal?
A tu une idée de l'erreur que je dois corriger?

Et merci pour ton aide précieuse.

Php? Passionnant!!
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
25 août 2010 à 20:57
Avez-vous une idée de l'erreur que je dois corriger?
Merci.

Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2010 à 08:46
Bonjour.
Il faut apriori remplacer result1 par result1[0] (pour prendre le premier élément du tableau).
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
26 août 2010 à 09:07
Bonjour,
J'ai essayé ça me donne le même résultat et si je l'applique à $ville_name[0] cela me renvoie la 1ère lettre du nom de la ville.

Les résultats que j'attends sont du type : "46.0803111" et "4.7835137" si cela importe.


Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2010 à 09:34
ta variable $ville_name doit être une chaine de caractères, donc si tu fais un $ville_name[0], tu récupère juste 1 caractère.
Pour tes coordonnées essayes de faire un $result1[0][0], ça doit être un tableau à 2 dimensions.
Pour le vérifier tu peux faire un echo var_dump($result1); pour affiche la structure de ta variable.
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
26 août 2010 à 09:40
ok j'essaye, si non j'ai affiché le Arrray avec
<?php echo '';print_r($result1); echo '

';?>
et ça mez donne :
Array
(
[0] => Array
(
[0] => 51.0342918
[lat] => 51.0342918
)

)



Php? Passionnant!!
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
26 août 2010 à 09:42
Voila la réponse de : echo var_dump($result1)

array(1) { [0]=> array(2) { [0]=> string(10) "51.0342918" ["lat"]=> string(10) "51.0342918" } }

Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2010 à 09:48
Du coup, As tu essayé de faire un $result1[0][0] ?
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
26 août 2010 à 09:50
CA MARCHE AVEC [0][0],
ok j'ai compris!!

Un grand merci à toi!!!

J'aurai un autre problème à résoudre avec une map dans un form, penses-tu que je puisse t'en faire part? Et si c'est trop long, est-ce que l'on peut s'arranger?

ENCORE MERCI!!


Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2010 à 11:16
Le forum est là pour ça ! si tu as de nouvelles questions, n'hésite pas à les poster.
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
26 août 2010 à 11:49
En fait j'ai fait une map avec des survole sur Fireworks : découpes, carte image en arrière plan dans une table, des images transparentes en premier plan (pour réduire le temps de chargement), des images en fond qui s'affichent au survole et des href= pour les clics.

J'ai placée cette carte en include PHP dans un script javascript qui me l'affiche en calque au centre de ma page lorsque je clique sur un lien. Enfin j'ai placé le tout dans un "form".

La carte fonctionne, (survole, calque et lorsque je clique sur une image cela change bien les select de mon form) mais voila je souhaiterais que les href= fassent office de value pour que mon form ne se remette pas à o.

Hé hé..

Voilà mon code dans le body :
<td rowspan="2" colspan="5">

http://www.touslesbonsplans.fr/recherche.php?q=&sea_cat=Toutes+cat%E9gories&sea_reg=1&sea_dep=62

</td>


Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2010 à 14:19
Je ne vois pas trop ce que tu veux faire avec tes balises href.
As tu pensé à l'utilisation de champ hidden.
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
26 août 2010 à 15:41
En fait je souhaite que lorsque je clique sur une des images (il y en a une centaine) que cela donne une valeur à mon form que je valide ensuite. Ce que j'ai actuellement, c'est que lorsque je clique cela me renvoie la page entière et donc les sélects du form sont remis à 0 (il faut donc recommencer les choix).

Si non qu'est-ce qu'un champ hidden?

Merci laurent1024.


Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2010 à 16:00
OK, je comprend mieux.
Pour remplir ton formulaire, tu peux fait une fonction du genre :

function xxxx() {
    document.getElementById("id_select_1").value = "val1";
}

<select id="id_select_1" name="select_1">
    <option value="val1">val1</option>
    <option value="val2">val2</option>
</select>
0
gnut Messages postés 69 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 24 mai 2011
26 août 2010 à 16:14
En fait je veux pas changer les select. Je voudrais que les cliques sur ma carte est le même effet qu'un select, dans mon form.

Je sais pas si je me fais comprendre?

Php? Passionnant!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
26 août 2010 à 16:19
dans se cas, il suffit de remplacer dans le code que je t'ai montré le select par un champ hidden.
function xxxx() {
    document.getElementById("id_hidden_1").value = "val1";
}

0
Rejoignez-nous