писал аякс, использовав xml
1) создание объектаКод:
var request = null;
function createRequest(){
try{
request = new XMLHttpRequest();
}
catch(trymicrosoft){
try{
request = new ActiveXObject(”Msxml2.XMLHTTP”);
}
catch(othermicrosoft){
try{
request = new ActiveXObject(”Microsoft.XMLHTTP”);
}
catch(failed){
request = null;
}
}
}
if(request == null){
alert(”Error creating request object!”);
}
}
2) запрос данных с сервера: Код:
function getTextPar(host,id,cat){
createRequest();
var url='http://'+host+'/ajax/descparam-ajax.php?catid='+cat+'&namepar='+id+'&data='+new Date().getTime();
request.open('GET',url,true);
request.onreadystatechange = openWind;
request.send(null);
return false;
}
3) получение и обработка данных с сервера: Код:
function openWind(){
if(request.readyState == 4){
var xmlDoc = request.responseXML;
var parametrid = xmlDoc.getElementsByTagName(”parametrid”)[2];
var valPar = unescape(parametrid.firstChild.nodeValue);
alert(valPar);
//document.getElementById(id).innerHTML = text;
}
}
4) серверный скрипт: Код:
<?php
header(”Content-Type: text/xml; charset=windows-1251″);
/*здесь запрс в БД, разбор результирующей таблицы, создание массива*/
echo '<?xml version=”1.0″ encoding=”utf-8″?>';
?>
<totals>
<parametrid>12</parametrid>
<parametrid>10</parametrid>
<parametrid>Привет!</parametrid>
</totals>
Если в XML содержатся любые русские текстовые данные IE обнаруживает ошибку в функции openWind(): 'требуется объект'. В Опере и ФаерФоксе таких ошибок не наблюдается.
в чём же дело?