Vanuit de database zet ik met een PHP bestand (via XML) de gegevens om naar Javascript.
Dat gaat allemaal goed.
Nu verander ik in de kaart een cirkel (slepen, groter/kleiner).
Vervolgens voeg ik deze nieuwe gegevens weer toe aan de PHP.
En dan gaat het verkeerd. De nieuwe gegevens worden aangeleverd via een $_POST.
De XML wordt weliswaar netjes gemaakt op grond van de nieuwe gegevens
(markers plaatsen binnen de cirkel).
Maar blijkbaar zit er dan wat verkeerd in de timing met het Javascript?
Met vaste gegevens (Utrecht) geen probleem.
Hier de belangrijkste stukjes (denk ik).
Iemand die me verder kan helpen?
PHP
$query = "SELECT * FROM markers";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
//Start XML file, echo parent node
echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
$haversign= new HaverSign();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$lat2 = $_POST['lat'];
$lon2 = $_POST['lon'];
$rad2 = $_POST['rad'];
//echo $lat2." ".$lon2." ".$rad2;
}
//DEFINE (R, 6367000); // Radius van de aarde
//Utrecht
//$lat2 = 52.0901422;
//$lon2 = 5.1096649;
//$rad2 = 180;
//while ($row = @mysql_fetch_assoc($result)){
$lat3 = $row['lat'];
$lon3 = $row['lng'];
$address = $row['address'];
$dist = $haversign->getDistance($lat2,$lon2,$lat3,$lon3);
//echo $dist." ".$rad." ".$address."<br>";
if ($dist < $rad2){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name="' . parseToXML($row['name']) . '" ';
echo 'address="' . parseToXML($row['address']) . '" ';
echo 'lat="' . parseToXML ($row['lat']) . '" ';
echo 'lng="' . parseToXML ($row['lng']) . '" ';
echo 'type="' . parseToXML ($row['type']) . '" ';
echo '/>';
}
}
//End XML file
echo '</markers>';
?>
Javascript
downloadUrl(testm, function(data)
{
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
//alert("markers "+markers.length);
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
//alert(name);
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
.
.
.
.
.
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
Toevoeging op 28/04/2016 13:26:42:
Als ik rechtstreeks stuur vanaf de form (zowel $_GET, als $_GET bij PHP) dan komt alles goed aan.
Wanneer ik het stuur vanaf de Iframe op de website, dan gaat het mis. Iframe heb ik even gedaan ivm de refesh anders.