function InviaDati(data)
{
  // istanziamo l'oggetto XMLHttpRequest
  if (window.XMLHttpRequest) 
  {
    req = new XMLHttpRequest();
    req.onreadystatechange = PocessaDati;
    req.open('POST', url, true);
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    req.send(data);
  }
  // controlliamo la versione di ActiveX
  else if (window.ActiveXObject) 
  {
    req = new ActiveXObject('Microsoft.XMLHTTP')
    if (req)
    {
      req.onreadystatechange = PocessaDati;
      req.open('POST', url, true);
      req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      req.send(data);
    }
  }
}

function PocessaDati()
{
  // monitoriamo lo stato dell'invio
  if (req.readyState == 4)
  {
    // restituiamo lo stato della richiesta
    if (req.status == 200) 
    {
      eval(what);
    }else{
      alert('Problema nella gestione dei dati: ' +
      req.responseText);
    }
  }
}