2013-05-26 3 views
1

자바 스크립트를 사용하여 경도와 위도를 가져오고 이전 위치와 비교하기를 원합니다. 다른 컴퓨터에서 로그인 할 때 페이스 북과 같은 것이 있지만 훨씬 더 단순 해집니다. 이를 달성하기 위해 2 개의 숨겨진 필드를 만들었고 사용자가 양식을 제출하면 값이 서버로 전송됩니다.자바 스크립트에서 위치를 가져 와서 PHP로 전달

<body> 
<p id="log">Login to continue: 
    <form action="welcome.php" method="post"> 
     Username: <input type="text" name="user" required > 
     Password: <input type="password" required> 
    <input type="hidden" name= "longitude" id="longitude"> 
    <input type= "hidden" name ="latitude" id="latitude"> 

    <input type="submit" name="submit" onclick="getLocation()"> 
</p> 
<script> 
var x=document.getElementById("log"); 
function getLocation() 
    { 
    if (navigator.geolocation) 
    { 
    navigator.geolocation.getCurrentPosition(showPosition); 
    } 
    else{x.innerHTML="Geolocation is not supported by this browser.";} 
    } 
function showPosition(position) 
    { 
    var latitude = position.coords.latitude; 
    var longitude = position.coords.longitude; 
    document.getElementByID("longitude").value = longitude; 
    document.getElementByID("latitude").value = latitude; 

    } 

</script> 

그러나 welcome.php의 코드 :

$latitude=$_POST["latitude"]; 
$longtude=$_POST["longitude"]; 

반환 : 공지 사항 : 정의되지 않은 인덱스 : 라인 8 \ XAMPP \ htdocs를 \ welcome.php : C에서 위도

알림 : 정의되지 않은 색인 : 경도 n C : \ xampp \ htdocs \ welcome.php on line 9

더 좋은 방법이 있으며이를 해결하는 방법이 있습니까?

+1

당신은에서 getElementById를 사용하지만 필드 내 의견과 답변 ... – mplungjan

답변

4

ID로 요소에 액세스하려고하지만 ID가 없습니다.

ID 속성을 추가하거나 다른 방식으로 참조하십시오. document.getElementByID

+1

9 초 나는 것을 수정 ID를 가지고 있지 않지만, 여전히 같은 :/내가 버그로 이어질 수 THS 실수를 참조 – mplungjan

+0

사이 – C0ld

1

당신이 만든 실수가 d는 작은 즉,해야 document.getElementById

+1

.. – sAnS

+0

귀하와 @ Kolink의 답변을 결합하여 해결해야합니다. – Shomz

0

변경이

function showPosition(position) 
    { 
    var latitude = position.coords.latitude; 
    var longitude = position.coords.longitude; 
    document.getElementByID("longitude").value = longitude; 
    document.getElementByID("latitude").value = latitude; 

    } 

function showPosition(position) 
    { 
    var latitude = position.coords.latitude; 
    var longitude = position.coords.longitude; 
    document.getElementById("longitude").value = longitude; 
    document.getElementById("latitude").value = latitude; 

    } 

-

그리고 그것은

+0

@ santanu의 대답을 복사 할 필요가 없습니다 ... – Shomz

+0

그냥 도와 주려고 :) – CuriousMind

0

열기 불을 지르고 작동합니다, 라벨 네트워크를 클릭하고 위도 및 경도 매개 변수가 전송 된 경우 게시 요청. 그렇다면 PHP 스크립트에 오류가 있어야합니다. 두 매개 변수를 모두 찾을 수 없으면 클라이언트 코드를 확인하십시오.

관련 문제