My php file:
<?php
if (isset($_POST['query'])) {
$query = $_POST['query'];
$url='http://maps.googleapis.com/maps/api/geocode/json?address=';
$callback="&callback=?";
$sensor='&sensor=false';
$result= $url.$query.$sensor.$callback;
curl_init ($result);
}
?>
My html file:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
// when the user clicks the button
$("button").click(function(){
$.getJSON("geo.php",function(json){
$('#results').append('<p>Latitude : ' + json.results[9].geometry.location.lat+ '</p>');
$('#results').append('<p>Longitude: ' + json.results[9].geometry.location.lng+ '</p>');
});
// get the json file
});
});
</script>
</head>
<body>
<input type="text" id="query" /><button>Get Coordinates</button>
<div id="results"></div>
</body>
</html>
I get this error when i used firbug:
json is null
$('#results').append('<p>...s[9].geometry.location.lat+ '</p>');
Google’s json response:
{
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
"address_components": [ {
"long_name": "1600",
"short_name": "1600",
"types": [ "street_number" ]
}, {
"long_name": "Amphitheatre Pkwy",
"short_name": "Amphitheatre Pkwy",
"types": [ "route" ]
}, {
"long_name": "Mountain View",
"short_name": "Mountain View",
"types": [ "locality", "political" ]
}, {
"long_name": "California",
"short_name": "CA",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "United States",
"short_name": "US",
"types": [ "country", "political" ]
}, {
"long_name": "94043",
"short_name": "94043",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": 37.4219720,
"lng": -122.0841430
},
"location_type": "ROOFTOP",
"viewport": {
"southwest": {
"lat": 37.4188244,
"lng": -122.0872906
},
"northeast": {
"lat": 37.4251196,
"lng": -122.0809954
}
}
}
} ]
}
EDITED:
<?php
if (isset($_POST['query'])) {
$query = $_POST['query'];
$url='http://maps.googleapis.com/maps/api/geocode/json?address=';
$callback="&callback=?";
$sensor='&sensor=false';
$result= $url.$query.$sensor.$callback;
$resp = file_get_contents($result);
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo $resp;
}
Are you sure you are capturing the result?
I’m assuming this:
Your PHP code is called via Ajax from the html.
So basically you are constructing the URL for the query and using CURL to fetch the json result.
It seems you are not actually capturing or returning the results to the ajax call
You might want to do this: