Gå til innhold

PHP IP i Javascript Google Kart


Anbefalte innlegg

Jeg holder på å lage en nettside hvor du får opp din egen ip-adresse + kart som viser lokasjon. Problemet er å få variabelen $latlon fra php-koden og inn i javascript-koden som viser kartet.

 

Kan noen hjelpe meg?

 

Min kode så langt:

<!DOCTYPE html>
<html>
<head>
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));

$latlon = $details->loc;

?>

<script>
function initialize()
{
  var mapProp = {
    center: new google.maps.LatLng($latlon),
    zoom:7,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}

function loadScript()
{
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "http://maps.googleapis.com/maps/api/js?key=&sensor=false&callback=initialize";
  document.body.appendChild(script);
}

window.onload = loadScript;
</script>
</head>

<body>

<?php

echo $details->ip;
echo "<br>";
echo $details->hostname;
echo "<br>";
echo $details->loc;
echo "<br>";
echo $details->org;
echo "<br>";
echo $details->city;
echo "<br>";
echo $details->region;
echo "<br>";
echo $details->contry_name;
echo "<br>";
echo $details->phone;

echo "<br>";
echo "<br>";
echo $latlon;


?>




<div id="googleMap" style="width:500px;height:500px;"></div>

</body>
</html>


Lenke til kommentar
Videoannonse
Annonse
function initialize()
{
  var mapProp = {
    center: new google.maps.LatLng($latlon),
    zoom:7,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}


Du må bruke <?php ?> for å hente ut variabler 

function initialize()
{
  var mapProp = {
    center: new google.maps.LatLng(<?php echo $latlon; ?>),
    zoom:7,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}

Noen servere støtter også <?= $latlon;?>

Lenke til kommentar

 

function initialize()
{
  var mapProp = {
    center: new google.maps.LatLng($latlon),
    zoom:7,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}


Du må bruke <?php ?> for å hente ut variabler 

function initialize()
{
  var mapProp = {
    center: new google.maps.LatLng(<?php echo $latlon; ?>),
    zoom:7,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}

Noen servere støtter også <?= $latlon;?>

 

 

Ja, stemmer det. Fant løsningen etter litt googling, men takk for svar uansett :) 

Lenke til kommentar

Det betyr vel ikke så mye i denne sammenheng, men det er generelt sett bedre å skrive ut variable inn i html syntaksen, og deretter lese disse inn i javascript på load, slik at klienten kan cache javascriptet. Det innebærer jo også at du må ha javascriptet i en egen fil (som igjen er best-practice).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...