2010-12-29 4 views
1

Google Maps API 및 W3C Standard를 사용하여 사용자의 위치 정보를 가져옵니다. 나는 그것을 [Google의 문서] [1]의 코드를 사용하여 기초로 설정했습니다.Google Maps API - php 변수를 javascript 변수로 설정

이제 이것을 내 웹 사이트에 통합하고 있으며이를 내 mysql 데이터베이스로 전달해야합니다. JavaScript 변수 (기본적으로 위도와 경도로 PHP 변수 설정)로 PHP 변수를 설정하고 싶습니다. 그러나 나는이 일을 성공하지 못하고있다.

편집 :

은 기본적으로 내가 = $jsvar$phpvar을 만들고 싶어. PHP 변수 만들기 = 내 자바 스크립트 변수.

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지도 API를 처음 사용하기 때문에 나에게 구체적으로 설명하십시오.

감사합니다! :)

+0

사용중인 코드를 제공 할 수 있다면 코드의 도움을 받아 설명하기가 더 쉬워 질 것입니다. 기본 구문은 제가 제 대답에서 말한 것입니다. – Stoic

+0

스토이치, 내가 사용하고있는 코드와 함께 편집을 참조하십시오. – ryryan

+1

은 SQL 데이터베이스에 Javascript 변수를 저장하려고합니다. 그렇다면 AJAX (DOM 해킹보다 쉬운 IMHO)를 사용해야합니다. – Stoic

답변

1

은이 같은 자바 스크립트 변수로 PHP 변수를 저장할 수 있습니다 : 필요에 따라

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

그런 다음이 변수를 사용할 수 있습니다. 예제 코드를 제공 할 수 있다면 더 정확하게 알려 드리려고합니다.

+0

이것은 주입에 취약합니다. $ geoloc에 작은 따옴표가 포함되어 있다면 어떨까요? 이제이 자바 스크립트 블록을 깨뜨 렸습니다. SQL 작업을위한 mysql_real_escape_string()과 마찬가지로 자바 스크립트에 삽입하기 전에 json_encode()를 통해 실행해야한다. –

+0

Hey Marc .. 이것은 예제 문장이었고, 위도와 경도를 사용하기 때문에 실제로는 여기에 json_encode가 필요하지 않습니다. 더욱이, 일반적으로, 예제 라인은 필요에 따라 변경 될 필요가있다. – Stoic

0

"PHP 변수를 자바 스크립트 변수로 설정하려고합니다." 이것은 분명하지 않습니까? 당신이 PHP-> 자바 스크립트를 이동하려면

는, 그것은 간단합니다

Javascript-> PHP를 들어
var myVar = <?php echo json_encode($some_php_var) ?>; 

, 그것은 조금 더 복잡합니다. 양식 값/양식을 제출하거나 일부 AJAX 작업을 수행하려면 DOM 해킹을해야합니다.