2011-03-23 2 views
0

저는 prototype.js의 새로운 기능으로 PHP 스크립트에 간단한 GET 요청을하려고합니다. 자바 스크립트 쇼 다음을 수행하십시오Prototype.js를 사용하여 PHP 스크립트에 게시하는 방법

  1. 를 위도/긴 doStuff() 함수
  2. 위도/긴 내 PHP 스크립트 (savecoords.php)를 통과 전달 사용자가 위도 가져 오기와 경도
  3. 구원 받는다.

Geolocation API를 구현하는 HTML5 가능 브라우저를 사용하고 있어도이 코드는 실행되지 않습니다. 다음은 코드입니다.

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     doStuff(position.coords.latitude, position.coords.longitude); 
    }); 
} 

function doStuff(mylat, mylong) { 
    new Ajax.Request('savecoords.php', { 
     method: 'get', 
     parameters: { 
      'latitude': myLat, 
      'long': myLong 
     } 
    } 
} 

아이디어가 있습니까?

+0

브라우저의 콘솔/디버거를 사용하여 자바 스크립트에 중단 점을 설정하고 실제로 실행되는지 확인하십시오. 당신은 그것이 일어나고 있다는 것을 알기 전까지는 다른 어떤 것을 취할 수 없습니다. 파이어 폭스를 가지고 있다면 파이어 버그를 가져오고, 크롬을 가지고 있다면 파이어 버그가 내장되어있다. – clockworkgeek

답변

0

함수가 호출되지 않는 이유를 알아 내기 위해서는 error callback을 전달해야합니다. 예 :

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(yourFunction, function (error) { 
     console.log(error.message, error.code); 
    }); 
} 

이렇게하면 오류 코드와 메시지가 표시되어 기능이 호출되지 않는 이유를 좁힐 수 있습니다. code은 여러 값 중 하나를 반환하고 message은 더 자세한 정보를 제공해야합니다. 상기 링크 MDC 페이지에서 :

UNKNOWN_ERROR (0 수치)

실패한 위치 취득 처리 오류가 발생하여,이 인터페이스의 다른 에러 코드의 정의에 포함되지. 응용 프로그램 기원은 지리적 위치 API를 사용할 수있는 권한이 없기 때문에

PERMISSION_DENIED (숫자 값 1)

위치 획득 프로세스가 실패했습니다.

POSITION_UNAVAILABLE (수치 2)

장치의 위치를 ​​판단 할 수 없었다. 위치 획득 프로세스에 사용 된 위치 제공 업체 중 하나 이상이 내부 오류를보고하여 프로세스가 완전히 실패했습니다. 구현이 성공적으로 새로운 위치에 오브젝트를 획득 할 수 있기 전에

TIMEOUT (수치 3)

시간의 지정된 최대 길이가 경과.

이 방법으로 문제를 완전히 해결할 수는 없지만 약간의 진전을 위해서는 필요한 통찰력을 제공해야합니다.

관련 문제