PDA

View Full Version : Ajax + xml


texerasmo
04-05-2007, 12:17
Raggazi sto impazzendo

Faccio questa cosa ...



function firstAjax(){
alert("Start");


var url="/cst/a.php";
var pars="nome=erasmo";
var myAjax= new Ajax.Request(url,
{
method :'post',
parameters : pars,
onComplete: complete,
onFailre: reportError
}
);

}
function complete(originalRequest){
alert("tutto ok");
alert ( originalRequest.responseText);
var a = originalRequest.responseXML.getElementsByTagName('mino');

alert (a);
}
function reportError(){
alert("niente tutto ok");
}
</script>



la pagina a.php è fatta in questo modo


<mino>
<?php
$test = $_POST['nome'];
echo $test;
?>
</mino>


Io vorrei prendermi un valore che c'è nel tag mino

ianaz
04-05-2007, 12:41
Nella pagina php hai specificato nell'header che é XML?

Poi, mettici un tag root sopra...il tutto dovrebbe uscire così

<?php
header('Content-Type: text/xml');

echo "<?xml version=\"1.0\" ?>\n";
echo "<root>\n";
echo "<mino>" . $_POST['nome'] . "</mino>\n";
echo "</root>";
?>


edit ma non é onFailure comunque sopra? Hai messo onFailre... Non so, io non utilizzo quella libreria :)

texerasmo
04-05-2007, 12:44
ok ora come posso prende il valore di mino?

questo mi ritorna
var a = originalRequest.responseXML.getElementsByTagName('mino');

objcet

ianaz
04-05-2007, 12:46
originalRequest.responseXML.getElementsByTagName('mino').item(0).firstChild.data;

ianaz
04-05-2007, 12:50
Sopra ho dimenticato

echo "<?xml version=\"1.0\" ?>\n";

sorry (ora l'ho editato)

texerasmo
04-05-2007, 13:52
la mia domanda è come posso prendere i valori nell

ianaz
04-05-2007, 13:53
la mia domanda è come posso prendere i valori nell

originalRequest.responseXML.getElementsByTagName('mino').item(0).firstChild.data;

texerasmo
04-05-2007, 16:36
grazie funge

texerasmo
04-05-2007, 16:41
un'altra cosa


function firstAjax(){

alert("Start");
var url="/teg/include_corpo_login.php";
var pars="lat6=0&lat7=0";

var myAjax= new Ajax.Request(url,
{
method :'post',
parameters : pars,
onComplete: complete,
//asynchronous:true,
//frequency:5,
onFailre: reportError
}
);

}




function complete(originalRequest){
//alert("tutto ok");
alert ( originalRequest.responseText);
var xmldoc = originalRequest.responseXML;
var id = xmldoc.getElementsByTagName('id');
var mess2 = xmldoc.getElementsByTagName('mess2');
var mess3 = xmldoc.getElementsByTagName('mess3');
var mappa = xmldoc.getElementsByTagName('mappa');

document.getElementById('mappa').src="motore/"+mappa.item(0).firstChild.data+".jpg";


}



<img src="" id="mappa" alt=""></a>
</body>
</html>


io vorrei generare questa richiesta ogni 10 secondi come posso fare?


ho pensato ad utilizzare



var myAjax= new Ajax.PeriodicalUpdater($('mappa'),url,
{
method :'post',
parameters : pars,
onComplete: complete,
asynchronous:true,
frequency:5,
onFailre: reportError
}
);

ma non mi funziona

oppure di metter nellea funziona

complete setTimeout(firstAjax(),5000);

tu che ne pensi

texerasmo
07-05-2007, 09:43
Grazie ho risolto

Andava
onSuccess :complete,
al posto di
onComplete: complete,

Una cosa se ho un xml fatto in questo modo

<root>
<comuni>
<citta>formia
<citta>gaeta
<citta>....


come posso ciclarmi tutti i comninui citta?

con xsl non ho pb ma in js si