2012-05-08 2 views
0

J'essaie d'obtenir l'API google maps pour les sites Web qui fonctionne sur mon site Web php. pour cela j'ai une page php qui charge les variables des utilisateurs pour les cartes. le javascript fonctionne correctement dans la page Web avec les valeurs par défaut, mais je ne suis pas en mesure de charger la variable $ php dans le script.php google maps pour le site Web javascript de l'API

peut-être un expert javascript peut donner un coup de main

function onProfileDisplay() { 
      $user   = CFactory::getRequestUser(); 
      $document  =& JFactory::getDocument(); 
      $document->addStyleSheet($css); 
      $my   = CFactory::getUser(); 
      $pluginParams = $this->params; 
      $param = new stdClass; 
      $param = $Lat = $pluginParams->get('Lat'); 
      $param = $Lng = $pluginParams->get('Lng'); 
      $param = $width = $pluginParams->get('width'); 
      $param = $height = $pluginParams->get('height'); 
      $param = $zoom = $pluginParams->get('zoom'); 
      return '<body onload="onprofileDisplay()"> <div id="map_canvas" style="width:800px; height:500px"></div> 
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
        <script type="text/javascript"> 

function onProfileDisplay() { 
      var latlng = new google.maps.LatLng(57.0442, 9.9116); 
      **var zoom = <?php echo ($zoom) ?>;** 
      var settings = { 
        **zoom: zoom,** 
        center: latlng, 
        mapTypeControl: true, 
        mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, 
        navigationControl: true, 
        navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
        }; 
      var map = new google.maps.Map(document.getElementById("map_canvas"), settings); 
      var companyPos = new google.maps.LatLng(57.0442, 9.9116); 
      var companyMarker = new google.maps.Marker({ 
      position: companyPos, 
      map: map, 
      title:"Some title" 
      }); 
      } 
      </script> 
        '; 
      } 

pour tester j'essaie seulement de charger la variable php zoom $ dans le javascript, mais il ne fonctionne pas, dans le javascript:

var zoom = <?php echo ($zoom) ?>; 
zoom: zoom, 

mais cela ne fonctionne pas, si je change le javascript à l'original supprimer var zoom =; zoom: 15, alors cela fonctionne mais avec des valeurs statiques par défaut

Aide appréciée.

Ceci est le code outuput:

<script type="text/javascript"> 
    function onProfileDisplay() { 
    var latlng = new google.maps.LatLng(57.0442, 9.9116); 
    var zoom = ".$zoom."; 
      var settings = { 
        ".$zoom.":".$zoom.", 
        center: latlng, 
        mapTypeControl: true, 
        mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, 
        navigationControl: true, 
        navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
        }; 
      var map = new google.maps.Map(document.getElementById("map_canvas"), settings); 
      var companyPos = new google.maps.LatLng(57.0442, 9.9116); 
      var companyMarker = new google.maps.Marker({ 
      position: companyPos, 
      map: map, 
      }); 
      } 
    </script> 

Le code original ressemble à:

 public function onProfileDisplay() { 
       $user   = CFactory::getRequestUser(); 
       $document  =& JFactory::getDocument(); 
       $document->addStyleSheet($css); 
       $my   = CFactory::getUser(); 
       $pluginParams = $this->params; 
       $param = new stdClass; 
       $param = $api_key = $pluginParams->get('api_key'); 
       $param = $Lat = $pluginParams->get('Lat'); 
       $param = $Lng = $pluginParams->get('Lng'); 
       $param = $width = $pluginParams->get('width'); 
       $param = $height = $pluginParams->get('height'); 
       $param = $zoom = $pluginParams->get('zoom'); 
       return '<body onload="onProfileDisplay()"> 
         <div id="map_canvas" style="width:800px; height:500px"></div 
</body> 
         <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
         <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
         <script type="text/javascript"> 
       function onProfileDisplay() { 
       var latlng = new google.maps.LatLng(57.0442, 9.9116); 
       var zoom = ".$zoom."; 
       var settings = { 
         ".$zoom.":".$zoom.", 
         center: latlng, 
         mapTypeControl: true, 
         mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, 
         navigationControl: true, 
         navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, 
         mapTypeId: google.maps.MapTypeId.ROADMAP 
         }; 
       var map = new google.maps.Map(document.getElementById("map_canvas"), settings); 
       var companyPos = new google.maps.LatLng(57.0442, 9.9116); 
       var companyMarker = new google.maps.Marker({ 
       position: companyPos, 
       map: map, 
       }); 
       } 
       </script>'; 
       } 
    } 
    ?> 

Répondre

0

Pourquoi mettez-vous PHP dans le retour de PHP-> fonction javascript? On dirait que c'est un moyen lourd d'obtenir votre résultat.

Dans tous les cas - pourquoi ne pas simplement mettre les valeurs réelles de la fonction PHP? Une fois qu'ils sont en javascript sur le client, vous ne serez pas en mesure d'utiliser la valeur côté serveur de toute façon.

exemple:

fonction onProfileDisplay() {var
latlng = new google.maps.LatLng (57,0442, 9,9116);
var zoom = "$ zoom."
paramètres var = {
"$ zoom.. ":" $ Zoom..",
centre: latlng,

+0

merci pour l'aide, la le script fonctionne mais la valeur du zoom ne vient pas du php, je l'ai testé avec document.write (zoom); et la sortie est $ zoom, pas la valeur php pour la variable $ zoom – Alforreca

+0

'code'var zoom =". $ zoom. "; var settings = { ". $ Zoom.": ". $ Zoom.", centre: latlng, 'code' vous changez réellement ne breack le script et la couche google maps apparaît vide, parce que la valeur étant passée pour zoom est $ zoom et pas la variable php – Alforreca

+0

Faire une «source de vue» sur la sortie et le mettre dans la question – ethrbunny