2012-10-23 2 views
1

Google Maps Cordinates를 보내서 mysql 데이터베이스를 채울 수있는 테스트 페이지를 만들려고합니다. 나는 아약스를 사용하여 PHP로 데이터를 보낸다. Firebug는 데이터가 전송 중임을 나타냅니다. 하지만이 PHP 오류가 나온다. 그리고 mysql 데이터베이스는 map cordinates없이 채워집니다.PHP-AJAX-JSON 공지 사항 : 정의되지 않은 색인 :

function sendData(geodata){ 
    var hr = new XMLHttpRequest(); 
    hr.open("POST","getdata.php",true); 
    hr.setRequestHeader("Content-type","application/json"); 

    if(hr.readyState==4 && hr.status==200){ 
      var data = JSON.parse(hr.responseText); 
      alert("Data received about "+data); 
      }//end if 

    hr.send("geodata="+geodata); 
}//close sendData 

이것은 PHP 페이지입니다 :

다음은 아약스 기능입니다.

<?php 
header("Content-Type : application/json"); 

$loc = $_POST["geodata"]; 

$username="root"; 
$password=""; 
$database="location"; 

$connection = mysql_connect('localhost',$username,$password); 
if(!$connection){ 
    die('Unable to connect to the server '.mysql_error()); 
    } 

$selectdb = mysql_select_db($database); 
if(!$selectdb){ 
    die('Unable to connect to database'.mysql_error()); 
    } 

$query = "INSERT INTO `location_data`(`ltlng`) VALUES ('".$loc."')"; 
$result = mysql_query($query); 
if(!$result){ 
    die('Invalid query : '.mysql_error()); 
    } 
?> 

그러면 다음과 같은 오류가 나옵니다.

(!) Notice: Undefined index: geodata in C:\wamp\www\IndustryProject\SampleDataGen\getdata.php on line 4 

감사합니다. 감사합니다.

+0

하여 오류보고 수준을 낮 춥니 다, 정의되지 않은 인덱스 참조가 생성 고지. –

+1

함수'sendData()'에 전달되는'geodata' 변수를 어디에서 설정하는지 알 수 없습니다. 그 기능이 실제로 불려지는 곳에 자바 스크립트를 더 게시하십시오 ... –

답변

2

쿼리 문자열과 데이터를 게시 할 때, 당신은 현재이 아닌 application/json 하나 application/x-www-form-urlencoded 콘텐츠 형식을 사용해보십시오 :

hr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
+0

그것은 매력처럼 작동했습니다 .... 감사합니다 newfurniturey ..... 그것은 일했습니다 ....-) –

관련 문제