
Originariamente inviata da
Shores
Ok, così verifichi anche se c'è il parametro:
Direi che la parte in js va bene... Sei sicuro che la chiamata ajax sta avvenendo correttamente, l'hai controllata con firebug o simili?
Non mi da altri errori soltanto che sembra ancora non sia in grado di ricevere la richiesta visto che non mi genera il file XML
Ti posto direttamente il codice cosi puoi verificarlo pure tu:
pagina HTML:
codice:
<html>
<head>
<title>GlobaliX GPRS</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<SCRIPT src="script/function.js"></SCRIPT>
<SCRIPT language="JavaScript" type="text/JavaScript">
var Timer;
//NOTE: https://developers.google.com/maps/documentation/imageapis/
//Visualizza mappa da google
function ShowMAP(latitude, longitude){
var Width = 640;
var Height = 640;
var GOOGLE_KEY = "AIzaSyDkK5hXflglDTRdRjed3cBtDc9t1EZ4ayM";
if((document.body.clientWidth < 640) && (document.body.clientHeight < 640)){
Width = document.body.clientWidth;
Height = document.body.clientHeight;
}
var IMMAGE = "<img src=http://maps.googleapis.com/maps/api/staticmap?center=" + latitude + "," + longitude + "&zoom=17&size=" + Width + "x" + Height + "&maptype=mobile\&markers=" + latitude + "," + longitude + ",greeng&key=" + GOOGLE_KEY + "&sensor=false>";
document.getElementById('mainspan').innerHTML =IMMAGE;
return 0;
}
//Chiamata XML
function GetData() {
var ajax = startXMLHttpRequest();
if(ajax) {
ajax.onreadystatechange=function() {
if(ajax.readyState==4 && ajax.responseText!=null) {
//PARSER XML
try {
var nodes=ajax.responseXML.getElementsByTagName("ROOT");
var latitude = nodes[0].getElementsByTagName("LATITUDE")[0].firstChild.nodeValue;
var longitude = nodes[0].getElementsByTagName("LONGITUDE")[0].firstChild.nodeValue;
ShowMAP(latitude, longitude);
HTML="<table>" +
"<tr><td>Latitudine:</td><td><b>" + latitude + "</b></td></tr>" +
"<tr><td>Longitudine:</td><td><b>" + longitude + "</b></td></tr>" +
"</table>";
document.getElementById('infospan').innerHTML =HTML;
} catch (e) {
HTML="<br><br><br><p class=error align=center>Struttura XML non valida o nessun dato presente nel database</p>";
document.getElementById('infospan').innerHTML = HTML;
document.getElementById('mainspan').innerHTML = "";
}
}
}
try {
var par = "XML=get&R=" + encodeURI(encodeURI(Math.random()));
ajax.open("POST", "./index.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.send(par);
} catch (e) {
document.getElementById('mainspan').innerHTML ="<br><br><br><p class=error align=center><img src=warning.gif><br><br>Errore<br>Pagina " + page + " non trovata sul server</p>";
}
Timer = setTimeout('GetData()',20000);
}
}
</SCRIPT>
</head>
<BODY onLoad='GetData();'>
<center>
<b>GlobaliX by Area SX S.r.l.<b><br>
<div id=mainspan>
</div>
<div id=infospan></div>
</center>
</BODY>
</html>
pagina PHP:
codice:
<?php
include "config.inc.php";
$db1 = new SQLite3('globalix.db');
//Salva le informazioni nel database
if(true){
$latitudine= "4153.2095";
$longitudine = "0228.0818";
$res = $db1->exec("INSERT INTO globalix (id, latitudine, longitudine) VALUES (null,'$latitudine','$longitudine')");
}
if($res)
echo "1,20,0";
else
echo "0,0,0";
//return(0);
// }
//Genera XML
//if(!empty($_REQUEST['XML']) && $_REQUEST['XML']=="get"){
if(array_key_exists("XML",$_POST) && trim($_POST["XML"])=="get"){
header("Content-type: text/xml");
header("Content-disposition: filename=index.xml");
header("Pragma: no-cache");
header("Expires: 0");
//The backslash before " mean that I wanna write " in the string
print "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
//Ricavo l'ultima coordinata inserita:
$query = "SELECT * FROM globalix ORDER BY id DESC LIMIT 1";
$res = $db1->query($query);
$rows = array();
while($row = $res->fetchArray()) {
$rows[] = $row;
}
echo "<ROOT>";
if(sizeof($rows) > 0){
//Ricavo la latitudine
$latitude =(int)substr($latitudine,0,2) + (float)(substr($latitudine,2,7)) / 60; //Latitudine
$latitude = substr($latitude,0,9);
//Ricavo la longitudine
$longitude =(int)substr($longitudine,1,2) + (float)(substr($longitudine,3,7)) / 60; //Longitudine
$longitude = substr($longitude,0,9);
echo "<LATITUDE>" . $latitude . "</LATITUDE>";
echo "<LONGITUDE>" . $longitude . "</LONGITUDE>";
echo "</ROOT>";
} else {
echo "<ERROR>0</ERROR>";
echo "</ROOT>";
}
echo "finish";
return 0;
}
?>