Note that there are some explanatory texts on larger screens.

plurals
  1. POsending json object to google maps vai ajax response from php script
    primarykey
    data
    text
    <p>I'm stumped. I am not sure why my JSON object is not being parsed by my callback function. I am getting the following error in the console log: </p> <p>TypeError: data is undefined for (var i = 0, len = data.features.length; i &lt; len; i++) {</p> <p>Your help is greatly appreciated!</p> <p>The ajax code:</p> <pre><code>$.ajax({ type : 'POST', url : 'timezone.php', dataType : 'json', data : { "func" : "getFirstAndNext", epochTime : browserUTC }, success : function( data ) { console.log( data.first ); console.log( data.next ); sector_callback( data.first ); // do something with data.myObject.memberVariable }, error : function ( XMLHttpRequest, textStatus, errorThrown ) { // didn't work! } }); </code></pre> <p>The PHP script:</p> <pre><code> &lt;?php //header('Content-Type: application/json; charset=utf-8'); function getFileStamp($type) { $timeInterval = 15; // minutes $now = round($_POST['epochTime'] / 1000); $now = round(1352324181061 /1000 ); // 3:36:21 //$now = round(1352238011.067); $offsetInSeconds = $timeInterval * 60; $offsetInMillis = $timeInterval * 60 * 1000; $currentFileTime = $now - $now % ($timeInterval * 60); //$currentFileTime = ($now - ($now % $offsetInMillis))/1000.0; // this returns epoch time in $timeInterval minutes. $nextFileTime = $currentFileTime + $offsetInSeconds; // next epoch time for file; return ($type == 0) ? $currentFileTime : $nextFileTime; } $currentFileTime = getFileStamp(0) . '.json'; $nextFileTime = getFileStamp(1) . '.json'; $res = array(); $res['file1'] = file_get_contents($currentFileTime); $res['file2'] = file_get_contents($nextFileTime); echo json_encode(array("first"=&gt;$res['file1'],"next"=&gt;$res['file1'])); //takes contents and converts it to json object ?&gt; </code></pre> <p>The sector callback function:</p> <pre><code> var allPolygons = []; function sector_callback() { //console.log(data); var bounds = new google.maps.LatLngBounds(); for (var i = 0, len = data.features.length; i &lt; len; i++) { var coords = data.features[i].geometry.coordinates[0]; siteNames = data.features[i].properties.Name; // added for site names var path = []; for ( var j = 0, len2 = coords.length; j &lt; len2; j++ ){ // pull out each set of coords and create a map object var pt = new google.maps.LatLng(coords[j][1], coords[j][0]) bounds.extend(pt); path.push(pt); } var polygons = new google.maps.Polygon({ path: path, strokeColor: "#000000", strokeOpacity: 0.8, strokeWeight: 1, fillColor: "#000000", fillOpacity: 0.35, map: map }); createClickablePoly(polygons, siteNames); google.maps.event.addListener(polygons, 'mouseover', function() { var currentPolygon = this; currentPolygon.setOptions({ fillOpacity: 0.45, fillColor: "#FF0000" }) }); google.maps.event.addListener(polygons, 'mouseout', function() { var currentPolygon = this; currentPolygon.setOptions({ fillOpacity: 0.35, fillColor: "#000000" }) }); allPolygons.push(polygons); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload