2015-02-23 3 views
1

ОК, вот моя проблема. У меня есть несколько страниц, отображающих точки на карте. Эти точки соответствуют lat и long в базе данных фотографий, которые были загружены для работы, которая была заполнена моими сотрудниками. Я хочу отображать только те точки, которые соответствуют конкретному заказу на работу. Вот что у меня есть. Это мой файл index.phpПередача переменной через страницу в скрипт

<?php include 'active.php'; 
$work_order = $_REQUEST['work_order']; 
global $work_order; 
?> 

<!DOCTYPE html> 

<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Work Order GPS Data</title> 
    <style type="text/css"> 
     body { font: normal 14px Verdana; } 
     h1 { font-size: 24px; } 
     h2 { font-size: 18px; } 
     #sidebar { float: right; width: 30%; } 
     #main { padding-right: 15px; } 
     .infoWindow { width: 220px; } 
    </style> 
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
    <script type="text/javascript"> 
    //<![CDATA[ 
function makeRequest(url, callback) { 
var request; 
if (window.XMLHttpRequest) { 
    request = new XMLHttpRequest(); // IE7+, Firefox, Chrome, Opera, Safari 
} else { 
    request = new ActiveXObject("Microsoft.XMLHTTP"); // IE6, IE5 
} 
request.onreadystatechange = function() { 
    if (request.readyState == 4 && request.status == 200) { 
     callback(request); 
    } 
} 
request.open("GET", url, true); 
request.send(); 
}  
    var map; 

    var center = new google.maps.LatLng(38.988297, -75.785499); 
    var geocoder = new google.maps.Geocoder(); 
var infowindow = new google.maps.InfoWindow(); 

function init() { 

var mapOptions = { 
    zoom: 9, 
    center: center, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 

map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 

makeRequest('get_locations.php?work_order=$work_order', function(data) { 

    var data = JSON.parse(data.responseText); 

    for (var i = 0; i < data.length; i++) { 
     displayLocation(data[i]); 
    } 
}); 
} 

function displayLocation(location) { 

var content = '<div class="infoWindow"><strong>' + location.name +  '</strong>' 
       + '<br/>'  + location.date_time 
       + '<br/>'  + location.work_order + '</div>'; 

if (parseInt(location.lat) == 0) { 
    geocoder.geocode({ 'address': location.address }, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 

      var marker = new google.maps.Marker({ 
       map: map, 
       position: results[0].geometry.location, 
       title: location.name 
      }); 

      google.maps.event.addListener(marker, 'click', function() { 
       infowindow.setContent(content); 
       infowindow.open(map,marker); 
      }); 
     } 
    }); 
} else { 
    var position = new google.maps.LatLng(parseFloat(location.lat), parseFloat(location.lon)); 
    var marker = new google.maps.Marker({ 
     map: map, 
     position: position, 
     title: location.name 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     infowindow.setContent(content); 
     infowindow.open(map,marker); 
    }); 
} 
} 


    </script> 
</head> 
<center> 
<body onload="init();"> 

    <h1>Work Order GPS Data</h1> 

    <section id="sidebar"> 
     <div id="directions_panel"></div> 
    </section> 

    <section id="main"> 
     <div id="map_canvas" style="width: 95%; height: 840px;"></div> 
    </section> 

</body> 
</center> 
</html> 

Тогда у меня есть мой get_locations.php

<?php 

require 'config.php'; 
$work_order = $_REQUEST['work_order']; 

try { 

    $db = new PDO($dsn, $username, $password); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    if($work_order != ''){ 
    $sth = $db->query("SELECT * FROM exif WHERE work_order=$work_order"); 
    }else{$sth = $db->query("SELECT * FROM exif"); 
    } 
    $locations = $sth->fetchAll(); 

    echo json_encode($locations); 

} catch (Exception $e) { 
    echo $e->getMessage(); 
} 

Моя проблема заключается в том, что, когда я иду в http://work.newmansecurity.com/gps/?work_order=1234 я не только получать баллы для работы порядка 1234 я получая все из них. Однако, если я перейду непосредственно в /gps/get_locations.php?work_order=1234, он работает. Поэтому по какой-то причине переменная не проходит, как мне хочется.

Пожалуйста ПОМОГИТЕ

Спасибо

ответ

0

***** ***** решаемые

Изменено

function init() { 

var mapOptions = { 
    zoom: 9, 
    center: center, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 

map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 

makeRequest(<?php echo json_encode($url); ?>, function(data) { 

    var data = JSON.parse(data.responseText); 

    for (var i = 0; i < data.length; i++) { 
     displayLocation(data[i]); 
    } 
}); 
} 

К этому. Использование json encode для передачи переменной. Works Great

0

Try окружающего ваш переменный $ work_order в запросе с одинарными кавычками.

+0

мой get_locations.php отлично работает. Поэтому я не верю, что это проблема. Моя проблема заключается в получении переменной с одной страницы на другую. Я считаю, что он находится в makeRequest ('get_locations.php? Work_order = $ work_order', разделе функций (данных), но я не уверен. – RKN2008

Смежные вопросы