Comment executer une fonction javascript plusieurs fois

eleveing Messages postés 92 Statut Membre -  
eleveing Messages postés 92 Statut Membre -
Bonjour tout le monde,

ca serait tres gentil si vous pouvez m'aider a resoudre le probleme suivant:
J'ai une fonction javascript qui permet d afficher des positions sur la carte, je sais pas coment rendre mettre cette fonction dans une boucle et afficher plusieurs positions et aussi comment recupere ces positions definies par x et y a partir de la base de donnees
voila mon script:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map-canvas { height: 100% }
</style>

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

<script type="text/javascript" src="jquery-ui-1.8.12.custom.min.js"></script>

<script type="text/javascript" >

function initialize() {

var x = 33.5333333
var y = -7.5833333
var latLng1 = new google.maps.LatLng(x,y);

var mapOptions1 = {
center: latLng1,
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};

var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions1);

var marker1 = new google.maps.Marker({
position : latLng1,
map : map,
title : "Lille"
//icon : "marker_lille.gif"
});

var infoWindow1 = new google.maps.InfoWindow({
scontent : contentMarker1,

position : latLng1,
});

google.maps.event.addListener(marker1, 'click', function() {
infoWindow1.open(map,marker1);
});

google.maps.event.addListener(infoWindow1, 'domready', function(){ // infoWindow est biensûr notre info-bulle
jQuery("#tabs").tabs();
});

}
google.maps.event.addDomListener(window, 'load', initialize);

</script>

</head>
<body>
<div id="map-canvas"/>
</body>
</html>

3 réponses

  1. Utilisateur anonyme
     
    et bien dans un code javascript tu appel simplement ta fonction :

    <script type="text/javascript">initialize()</script>


    Ensuite, pour changer le x et y tu peux envoyer des arguments à ta fonction :

    Appel de la fonction avec arguments :
    <script type="text/javascript">initialize(33, -7)</script>


    Donc du coup :
    function initialize(posiX, posiY)


    Tu récupère ensuite les arguments :

    var x = posiX
    var y = posiY 
    0
  2. eleveing Messages postés 92 Statut Membre 1
     
    Merci pour vos repenses alien41 et astuces72!!je vais tester ce que vous m avez proposé !!
    0
  3. astuces72 Messages postés 2146 Date d'inscription   Statut Membre Dernière intervention   1 669
     
    hello

    essaye ça avec tes paramètres de connexion à ta base:
    je n'ai pas essayé si ça marche !

    <body>
      <div id="map" style="width: 500px; height: 400px;"></div>
    
      <script type="text/javascript">
        var locations = [
     <?php
     $i=0;
    $query=("SELECT * FROM ta_base WHERE ");
    $result = mysql_query($query);
    while ($val = mysql_fetch_array($result))
    {
    echo "['".$val['ville']."', ".$val['lat'].", ".$val['lng'].", ".$i."],";
    $i++;
    } ?>
        ];
        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 5,
          center: new google.maps.LatLng(46.604167, 2.724609),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });
    
        var infowindow = new google.maps.InfoWindow();
    
        var marker, i;
    
        for (i = 0; i < locations.length; i++) {  
          marker = new google.maps.Marker({
            position: new google.maps.LatLng(locations[i][1], locations[i][2]),
            map: map
          });
    
          google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {
              infowindow.setContent(locations[i][0]);
              infowindow.open(map, marker);
            }
          })(marker, i));
        }
      </script>
    </body>


    si tu veux plus, comme des infobulles, regarde la source de ce moteur de recherche:
    http://vuedirecte.reliefmicro.fr
    -1