var req;

function autorequest(){
url = "client/xml_client_req.php?auto=" + document.getElementById("support_id_field").innerHTML;
if (window.XMLHttpRequest){//non-IE
req = new XMLHttpRequest();
req.onreadystatechange = autorequestStateChange;
try{
req.open("GET", url, true);
}catch (e){
alert (e);
}
req.send(null);
}else if(window.ActiveXObject){//IE
req = new ActiveXObject("Microsoft.XMLHTTP");
if(req){
req.onreadystatechange = autorequestStateChange;
req.open("GET", url, true);
req.send();
}
}
}
function autorequestStateChange(){
if(req.readyState == 4){
if(req.status == 200){
xml = req.responseXML;
html = '';
i = 0;
while (i >= 0){
sto = xml.getElementsByTagName("sto")[i];
wms = xml.getElementsByTagName("wms")[i];
msg = xml.getElementsByTagName("msg")[i];
if(sto != null){
sto = sto.firstChild.data;
}
if(wms != null && msg != null){
wms = wms.firstChild.data;
msg = msg.firstChild.data;
if (msg == 'c'){
sender = '>';
color = '#FFFFFF';
}
if (msg == 'm'){
sender = '>>';
color = '#FF0000';
}
html += '<div style="color:' + color + '">' + sender + ' ' + msg + '</div>';
i++;
}else{
i = -1;
}
}
i = 0;
document.getElementById("status_top").innerHTML=sto;
document.getElementById("chat_ontvangen").innerHTML=html;
}else{
alert("Problem: " + req.statusText);
}
}
}

xml:

<auto>
<sto>Mathias</sto>
<wms>c</wms>
<msg>testje</msg>
<wms>o</wms>
<msg>testje</msg>
</auto>

js debugger geeft dit:
[e] message = [string] "sto.firstChild has no properties"
1. gooi het even tussen de code tage
2. euhm... ja... en wat is nou het probleem ?
weet niet wat het probleem is daarom vraag ik het hier... Het doet gewoon niets...
Daar hebben we niks aan.
Wat doet het niet ?
wat heb je al geprobeert ?
met alleen "het doet het niet" kunnen we alles gaan checken

kijk eens waar het mis gaat.
(regel 33) sto = xml.getElementsByTagName("sto");

Sto is nog steeds een array/collectie met de verzameling van sto elementen.
Dus simpleweg verandereren naar

sto = xml.getElementsByTagName("sto").item(i);

kan misshien dit probleem verhelpen (tja als newbie weet je maar nooit)
Ik weet niet of code ook goed is voor javascript, maar dit is het script met de kleine aanpassing.


var req;

function autorequest(){
url = "client/xml_client_req.php?auto=" + document.getElementById("support_id_field").innerHTML;
if (window.XMLHttpRequest){//non-IE
req = new XMLHttpRequest();
req.onreadystatechange = autorequestStateChange;
try{
req.open("GET", url, true);
}catch (e){
alert (e);
}
req.send(null);
}else if(window.ActiveXObject){//IE
req = new ActiveXObject("Microsoft.XMLHTTP");
if(req){
req.onreadystatechange = autorequestStateChange;
req.open("GET", url, true);
req.send();
}
}
}
function autorequestStateChange(){
if(req.readyState == 4){
if(req.status == 200){
xml = req.responseXML;
html = '';
i = 0;
while (i >= 0){
sto = xml.getElementsByTagName("sto").item(i);
wms = xml.getElementsByTagName("wms")[i];
msg = xml.getElementsByTagName("msg")[i];
if(sto != null){
sto = sto.firstChild.data;
}
if(wms != null && msg != null){
wms = wms.firstChild.data;
msg = msg.firstChild.data;
if (msg == 'c'){
sender = '>';
color = '#FFFFFF';
}
if (msg == 'm'){
sender = '>>';
color = '#FF0000';
}
html += '<div style="color:' + color + '">' + sender + ' ' + msg + '</div>';
i++;
}else{
i = -1;
}
}
i = 0;
document.getElementById("status_top").innerHTML=sto;
document.getElementById("chat_ontvangen").innerHTML=html;
}else{
alert("Problem: " + req.statusText);
}
}
}

Reageren