Ciao a tutti,
devo leggere un file XML preso con il metodo responseXML tramite una richiesta AJAX.
Il file XML sembra esserci, ma non riesco a leggere gl ielementi che ci sono in esso.
Il mio codice è il seguente:
Codice PHP:
var ajaxRequest;
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
if(ajaxRequest.responseXML){
alert('onreadyState == 4');
var xmlDoc = ajaxRequest.responseXML;
var id = xmlDoc.getElementsByTagName("id");
var title = xmlDoc.getElementsByTagName("title");
var latitude = xmlDoc.getElementsByTagName("latitude");
var longitude = xmlDoc.getElementsByTagName("longitude");
//var content = xmlDoc.getElementsByTagName("content");
alert(title.length);
}
}
ajaxRequest.open("GET", "markList.php", true);
ajaxRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded");
ajaxRequest.send(null);
- se stampo l'oggetto xmlDoc, ricevo un [object XMLDocument] quindi il file XML c'è (altrimenti sarebbe null);
- alert(title.length); mi dà valore 0, il che è impossibile perché ho già controllato che markList.php restituisca dei valori tali ma per questo vi incollo anche markList.php:
Codice PHP:
<?php
header("Content-Type: text/xml");
include("connection.php");
$stream = mysql_connect($host,$user,$password)or die("Connessione non riuscita: " . mysql_error());
mysql_select_db($db, $stream) or die("Errore nella selezione del database");
$sql = "SELECT * FROM ch_comments";
$query = mysql_query($sql) or die('Error, insert query failed');
while($result = mysql_fetch_array($query)){
echo "<id>".$result['id']."</id>";
echo "<title>".$result['title']."</title>";
echo "<author>".$result['author']."</author>";
echo "<latitude>".$result['latitude']."</latitude>";
echo "<longitude>".$result['longitude']."</longitude>";
echo "<content>".$result['content']."</content>";
}
mysql_close($stream);
?>
Spero possiate aiutarmi!
Grazie diecimila!