Ciau ragazzi la cosa è un po' complessa non sapevo bene come mettere il titolo scusate :P

Allora mi sto avvicinando ad AJAX da poco quindi sto provando un po' di roba ed è proprio carino.

Al momento però ho 2 problemi. (posterò di seguito il codice js)

Uno è che con IE6 quando vado a premere il pulsante che fa partire la funzione per la richiesta mi dà errore nel send, e cioé "object Error" (nella funzione getAll errore: "Non riesco a collegarmi al server: object Error").
Con opera 9 invece nn mi dà questo errore.


L'altro problema è che avendo più tasti nella pagina che richiamano la stessa funzione ma con id diversi anziché restituirmi subito quello giusto, devo cliccare dopo aver caricato la pagina 2 volte sul primo tasto poi quando clicco sugli altri anziché darmi l'id giusto mi dà quello del tasto prima.

l'html per intenderci è una cosa simile a questo:
codice:
<div id="showAll91"><input name="showAll" id="91" type="button" value="Show all " onClick="getAll('91')"></div>


<div id="showAll23"><input name="showAll" id="23" type="button" value="Show all " onClick="getAll('23')"></div>


<div id="showAll16"><input name="showAll" id="16" type="button" value="Show all " onClick="getAll('16')"></div>


<div id="showAll45"><input name="showAll" id="45" type="button" value="Show all " onClick="getAll('45')"></div>


<div id="showAll67"><input name="showAll" id="67" type="button" value="Show all " onClick="getAll('67')"></div>
Cerco di spiegarmi meglio:
se clicco sul primo dovrebbe restiturmi subito (insomma quasi) la risposta che fa semplicemente l'echo del numero passato, cioé 91. Invece di farlo nn fa niente se ci riclicco me lo dà giusto. Dopodiché se clicco sul secondo anziché darmi 23 mi dà 91. Sul terzo mi dà 23 anziché 16 (quello cliccato prima insomma). Sono stato spiegato? Lo spero.

Eccovi il js che uso. Aiuto plz

codice:
// inizializziamo l'oggetto per la richiesta asincrona
  var xmlHttp = createHttpReqObj();
  // funzione per la creazione dell'oggetto asincrono
  function createHttpReqObj()   {
    var xmlHttp;    
// funziona con tutti i browser tranne IE6 e anteriori
    try
    {
      // proviamo a creare l'oggetto
      xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
      //IE6 o anteriori
      var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",                                      
"MSXML2.XMLHTTP.5.0",                                      
"MSXML2.XMLHTTP.4.0",                                      
"MSXML2.XMLHTTP.3.0",                                      
"MSXML2.XMLHTTP",                                      
"Microsoft.XMLHTTP");
      // proviamo finché nn ne funziona uno
      for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
       {
        try
         {
           // proviamo a creare l'oggetto
          xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
        }
         catch (e) {}
      }
    }
    // ritorna l'oggetto creato e display errore
     if (!xmlHttp){
      alert("Errore nella creazioen dell'oggetto HTTPRequest.");
    } else {
      return xmlHttp;
  	}
  }
    // contattiamo il server per richiedere le risposte del thread
  function getAll(idToShow)
  {
  var serverParams = "ids=" + idToShow;
    // continuiamo solo se è stato creato l'oggetto
    if (xmlHttp)
    {
      // proviamo a connetterci al server
      try
      {
        xmlHttp.onreadystatechange = handleStateChange(idToShow);
        xmlHttp.open("GET", "getmsgs.php?" + serverParams, true);
        xmlHttp.send();
      }
      // errore
      catch (e)
      {
        alert("Non riesco a collegarmi al server:\n" + e.toString());
      }
    }
    }
    // al cambio dello stato richiama questa funzione
  function handleStateChange(idToShow)
   {
    // quando lo stato e 4 ed è ok (200) leggiamo la risposta    if (xmlHttp.readyState == 4)
     {
      if (xmlHttp.status == 200)
       {
        try 
       {
          // funzione per leggere la risposta
          writeAnswers(idToShow);
        }
        catch(e)
        {
          // errore
          alert("Errore nella lettura della risposta: " + e.toString());
        }
      }
       else
         {
        // status
        alert("Errore nella ricezione dei dati:\n" + xmlHttp.statusText);
      }
    }
  }
    // cosa facciamo con la risposta?
  function writeAnswers(idToShow)
  {
    // risposta del server
    var answers = xmlHttp.responseText;
    //riferimento al div da sostituire
    divToAll = document.getElementById("showAll" + idToShow);
    // mostriamo la risposta
    divToAll.innerHTML = answers;
 }