• User Newbie

    Problema ajax con ie 7.0

    Ciao a tutti, ho il seguente pezzo di codice javascript per effettuare una richiesta asincrona:

    function aggiungi(riga,fornitore,cliente,prodotto){

    var ajaxRequest; 
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                
                alert("Il browser non supporta ajax");
                return false;
            }
        }
    }
    
    
    
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            var nom='i'+riga;
            var ajaxDisplay = document.getElementById(nom);
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
                aggiorna(cliente);// funzione aggiornamento grafica carrello
    
        }
    }
    
    alert("cr.php"+"?az=p&f="+fornitore +"&p="+prodotto+"&c="+cliente);
    var queryString = "?az=p&f="+fornitore +"&p="+prodotto+"&c="+cliente;
    ajaxRequest.open("GET", "cr.php" + queryString, true);
    ajaxRequest.send(null); 
    

    }
    Il codice è associato ad un bottone '+' di un elenco di prodotti.
    Il file cr.php effettua l'aggiornamento del numero di prodotti nel db e ritorna il suddetto numero dopo l'aggiornamento.
    Il codice funziona perfettamente con firefox,opera e chrome ma con explorer mi fa aumentare solo di una unità poi non succede nulla (in pratica la prima volta che clikko sul bottone tutto ok se clikko una seconda volta non succede niente).
    Considerando che il file cr.php è stato trestato a parte e funziona (con gli altri browser è tutto ok) deduco che il problema sia nella chiamata o nella creazione di httprequest (anche se effettivamente la prima volta funziona...), non so più dove sbattere la testa :arrabbiato: , probabilmente sarà una fesseria nel codice che non vedo :bho:, magari potete aiutarmi!!
    Grazie mille!!!!
    :ciauz:


  • User Newbie

    Ho risolto il problema!:D:D
    Era un problema di caching: in pratica quando veniva chiamato

    ajaxRequest.open("GET", "cr.php" + queryString, true);
    ```la prima volta tutto era ok, ma le volte successive restava tutto in cache e ritornava lo stesso risultato causando problemi.
    Per ovviare al problema ho sostituito
    

    var queryString = "?az=p&f="+fornitore +"&p="+prodotto+"&c="+cliente;

    var queryString = "?az=p&f="+fornitore +"&p="+prodotto+"&c="+cliente+"&rand="+Math.random();

    (beh teoricamente se esce lo stesso numero random 2 volte due seguito non funziona ma è una eventualità trascurabile...:fumato:)
    Spero che il post sia utile a qualcun altro
    Ciao a tutti !!!!:ciauz: