2010-12-29 6 views
1

私はGoogle Maps APIとW3C Standardを使用してユーザーのジオロケーションを取得しています。私は[Googleのドキュメント] [1]のコードを使用して基本として設定しました。Google Maps API - php変数をjavascript変数として設定する

私はこれを私のウェブサイトに統合していて、それを自分のmysqlデータベースに移す必要があります。私はJavaScript変数(基本的に緯度と経度としてPHP変数を設定する)としてPHP変数を設定したいと思います。しかし、私はこれをやることに成功していない。

EDIT:

基本的に私は$phpvar = $jsvarを作りたいです。 PHP変数を作る= my javascript変数。

var initialLocation; 
var siberia = new google.maps.LatLng(60, 105); 
var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687); 
var browserSupportFlag = new Boolean(); 

function initialize() { 
    var myOptions = { 
    zoom: 6, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    // Try W3C Geolocation (Preferred) 
    if(navigator.geolocation) { 
    browserSupportFlag = true; 
    navigator.geolocation.getCurrentPosition(function(position) { 
     initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
     map.setCenter(initialLocation); 
    }, function() { 
     handleNoGeolocation(browserSupportFlag); 
    }); 
    // Try Google Gears Geolocation 
    } else if (google.gears) { 
    browserSupportFlag = true; 
    var geo = google.gears.factory.create('beta.geolocation'); 
    geo.getCurrentPosition(function(position) { 
     initialLocation = new google.maps.LatLng(position.latitude,position.longitude); 
     map.setCenter(initialLocation); 
    }, function() { 
     handleNoGeoLocation(browserSupportFlag); 
    }); 
    // Browser doesn't support Geolocation 
    } else { 
    browserSupportFlag = false; 
    handleNoGeolocation(browserSupportFlag); 
    } 

    function handleNoGeolocation(errorFlag) { 
    if (errorFlag == true) { 
     alert("Geolocation service failed."); 
     initialLocation = newyork; 
    } else { 
     alert("Your browser doesn't support geolocation. We've placed you in Siberia."); 
     initialLocation = siberia; 
    } 
    map.setCenter(initialLocation); 

}}

すべてのヘルプは素晴らしいことだ:

ここでは、コードです!私はこのGoogle Map APIを初めて使い慣れているので、私と話してください。

ありがとうございます! :)

+0

使用しているコードを提供できる場合は、コードの助けを借りて説明するのが簡単です。基本的な構文は、私の答えで述べた通りです。 – Stoic

+0

ストイック、使用しているコードと一緒に私の編集を見てください。 – ryryan

+1

は、SQLデータベースにJavascript変数を格納したいと思うようです。その場合、AJAX(DOMハッキングよりも簡単なIMHO)を使用する必要があります。 – Stoic

答えて

1

次のようなJavaScript変数としてPHPの変数を格納することができます:

<script type="text/javascript"> 
    var geoloc = '<?php echo $geoloc; ?>'; 
</script> 

必要に応じて、あなたは、この変数を使用することができます。サンプルコードを書くことができれば、私はより正確にあなたに知らせるように努めます。

+0

これは注入に脆弱です。$ geolocに一重引用符が含まれているとどうなりますか?今、あなたはこのJavaScriptブロックを壊しました。 SQLのmysql_real_escape_string()と同じように、javascriptに挿入する前にjson_encode()を実行する必要があります。 –

+0

Hey Marc ..これは例文です。彼は緯度と経度を使用しているので、実際には自分自身の複雑さを増やすためにここにjson_encodeを必要としません。さらに、一般的には、必要に応じて例の行を変更する必要があることが分かります。 – Stoic

0

"PHP変数をJavascript変数として設定します。"これはあまり明確ではありませんか?

あなたはPHP-> Javascriptを移動したい場合は、それは簡単です:Javascript-> PHPの場合

var myVar = <?php echo json_encode($some_php_var) ?>; 

、それはもう少し複雑です。フォームの値にフォームの値を挿入するには、いくつかのDOMハッキングを行う必要があります。フォームを送信するか、いくつかのAJAXの作業を行います。

関連する問題