2017-10-21 7 views
0

この問題はすでにネットワーク上の他のポストや他のフォーラムで解決されていますが、どこが間違っているのか分かりません。
は、私は、検索ユーザの位置については、このコードはJavaScriptました:
地理座標をdbに更新

if(!!navigator.geolocation){ 
    navigator.geolocation.getCurrentPosition(geolocalizzami); 
} 
else { 
    alert("Geolocalizzazione non supportata"); 
} 

function geolocalizzami(position) { 
    document.getElementById("lon").innerHTML = position.coords.longitude; 
    document.getElementById("lat").innerHTML = position.coords.latitude; 
} 

を、私は

<label id='lon' /></label> 

と、[OK]をクリックして印刷することができます。これらのデータをデータベースにロードする必要があります。私はjqueryとajaxを使う必要があることを知っています。 ajaxコードをhtmlページに置いてservを探して、座標を見つけてpostメソッドでこれらのデータをPHPページに送ります。ここで私は$ _POST ['値']を使ってデータを扱うことができます。 私が使用することを、インターネットで見つかった例は、次のとおりです。

page.html

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script 
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> 
</script> 
</head> 
<body> 
<script type="text/javascript"> 
if (navigator.geolocation) { 

navigator.geolocation.getCurrentPosition(function(position) { 

    $.ajax({ 
     url:'page2.php', 
     data: { 
      'lat': position.coords.latitude, 
      'lng': position.coords.longitude 
     }, 
     type: 'get', 
     success: function (result) { 
      // If your backend page sends something back 
      alert(result); 
     } 
    }); 

    }); 
} 
</script> 
</body> 
</html> 

page2.php

はなぜ$ LATと$がをLNGは

<?php 
echo $lat = $_POST['lat']; 
echo $lng = $_POST['lng']; 
?> 
です空の?前もって感謝します。

答えて

1

変更

echo $lat = $_POST['lat']; 
echo $lng = $_POST['lng']; 

echo $lat = $_GET['lat']; 
echo $lng = $_GET['lng']; 

それとも

type: 'get', 

あなたはmが

type: 'post', 

POSTGETは、PHPでは2つの異なるものです。何が起きているのかを見るには、郵便配達員のようなツールを使うことをお勧めします。これは、時には何が起こっているかについてより多くの情報を提供することがあります。テストのために

あなたは$_GET$_POSTを変更してみてくださいpurpese:

$.get("page2.php?lat="+position.coords.latitude+"&lng="+position.coords.longitude, function(data) { 
console.log(data) 
}); 

はまた、それは混合が私の不注意だった

$lat = $_GET['lat']; 
$lng = $_GET['lng']; // POST 

echo $lat; 
echo $lng; 

それとも

echo $_GET['lat']; 
echo $_GET['lng']; // or POST 
+0

を使用する方が一般的ですしかし、私に指してくれてありがとう。とにかく私は両側でpostメソッドを使って修正しましたが、私は何も見ていません。 –

+0

私の回答を更新しました – SuperDJ

+0

まだ彼らはjavascriptの最初の武器ですが、私はあなたのコードを$ .ajax({...})の代わりに置いています。取得と投稿の両方で、私は何も見ていない。 –

関連する問題