Ho creato una pagina html che tramite oggetto asincrono riceve da un file php i dati da inserire in una tabella. Lo script Ajax esegue tutto alla perfezione ma i dati vengono visualizzati su Firefox ma non su IE 6 e 7. Eppure ho usato solo metodi del DOM Level 1.

Ecco il codice.
index.php
Codice PHP:
<?php ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sito Ecommerce</title>
<link rel="stylesheet" type="text/css" href="stile.css" />
<script type="text/javascript" src="ajax.js"></script>
</head>
<body onload="init();">
<div id="contenitore"></div>
</body>
</html>
ajax.js
Codice PHP:
function createXMLHttpRequest() {
     var 
XHR nullbrowserClient navigator.userAgent.toUpperCase();     if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")         XHR = new XMLHttpRequest();
     else if(
windows.ActiveXObject && browserClient.indexOf("MSIE 4") < 0) {         if(browserClient.indexOf("MSIE 5") < 0)
             
XHR = new ActiveXObject("Msxml2.XMLHTTP");
         else
             
XHR = new ActiveXObject("Microsoft.XMLHTTP");
     }
     return 
XHR;
 }  
function 
init() {
 var 
http createXMLHttpRequest();
  if(
http) {
         
http.open("post""processdata.php"true);
         
http.setRequestHeader("content-type""application/x-www-form-urlencoded");
         
http.onreadystatechange = function() {
                if (
http.readyState == 4) {
                    if (
http.status == 200) {
                         var 
responso http.responseXML;
                         if(
responso) {
                             var 
classi = [ "foto""codice""descrizione""prezzo""quantita""aggiungi" ];
                             var 
contenitore document.getElementById("contenitore");
                             var 
tabella document.createElement("table");
                             var 
articoli responso.getElementsByTagName("articolo");
                              for(var 
0articoli.lengthj++) {
                                  var 
riga document.createElement("tr");
                                  for(var 
0classi.lengthi++) {
                                  var 
cella document.createElement("td");
                                  if(
articoli[j].getElementsByTagName(classi[i])[0]) {
                                          var 
testo articoli[j].getElementsByTagName(classi[i])[0].firstChild.nodeValue;
                                     } else {
                                         var 
testo classi[i];                                     }                                     cella.appendChild(document.createTextNode(testo));                                     riga.appendChild(cella);                                 }                                 tabella.appendChild(riga);                              }                             contenitore.appendChild(tabella);
                            } else {
                             
alert('Errore nella gestione dei dati: ' http.responseText);
                         }
                    }
                }
         }
         
http.send(null);
 }
 } 
Quest'ultimo invece è il file xml che php genera e manda come responso:
Codice PHP:
<?xml version="1.0" encoding="utf-8"?>
<articoli>
    <articolo>
        <codice>01289398</codice>
        <descrizione>Articolo di esempio</descrizione>
        <prezzo> 1000,45 € </prezzo>
        <quantita>100</quantita>
    </articolo>
    <articolo>
        <codice>01289398</codice>
        <descrizione>Articolo di esempio</descrizione>
        <prezzo> 1000,45 € </prezzo>
        <quantita>100</quantita>
    </articolo>
    <articolo>
        <codice>01289398</codice>
        <descrizione>Articolo di esempio</descrizione>
        <prezzo> 1000,45 € </prezzo>
        <quantita>100</quantita>
    </articolo>
    <articolo>
        <codice>01289398</codice>
        <descrizione>Articolo di esempio</descrizione>
        <prezzo> 1000,45 € </prezzo>
        <quantita>100</quantita>
    </articolo>
    <articolo>
        <codice>01289398</codice>
        <descrizione>Articolo di esempio</descrizione>
        <prezzo> 1000,45 € </prezzo>
        <quantita>100</quantita>
    </articolo>
</articoli>