Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    JAVASCRIPT - XMLHTTPREQUEST - Carrello

    Ciao a tutti, ho un problema con questa funzione del mio carrello:

    <td width="100">
    <INPUT name="button2" alt="Clicca su Aggiorna per salvare le modifiche" type=button onclick="javascript: populateSubSelection('nr<? echo $key;?>','nr<? echo $key;?>',-1,'totale<? echo $key;?>',<? echo $row[12];?>,<? echo $row[14];?>,<? echo $row[15];?>,<? echo count($_SESSION[carrello]);?>, 'tot'); " value=->

    <input id="nr<? echo $key;?>" readonly type="text" size="4" maxlength="5" value="<? echo $nr_prod;?>">
    <input name="button" type=button onClick="javascript: populateSubSelection('nr<? echo $key;?>','nr<? echo $key;?>',1,'totale<? echo $key;?>',<? echo $row[12];?>,<? echo $row[14];?>,<? echo $row[15];?>,<? echo count($_SESSION[carrello]);?>, 'tot'); " value=+>
    </td>

    ---------------------------------------------------------------------------------------
    Cliccando sul pulsante + parte il seguente codice javascript:



    function populateSubSelection(i,id,delta,id2,prezzo_uni,sco nto1,sconto2,k,output){
    //Recupero i dati da inviare
    var mainSelection = document.getElementById(i);
    //Creo un nuovo oggetto XMLHTTPRequest
    var req = newXMLHttpRequest();

    //Invio la richiesta
    req.open("POST", "vis_ordine.php", true);
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    //Invio i dati POST
    req.send(i+"=" + mainSelection.value);
    //Gestore dell'evoluzione dello stato dell'oggetto req
    req.onreadystatechange = handleResponse(req,id,delta,id2,prezzo_uni,sconto1 ,sconto2,k,output);
    }



    Qui viene fatta una richiesta ad una pagina php per aggiornare una variabile di sessione dove è contenuto il valore della quantità del prodotto
    -------------------------------------------------------------------------------


    function newXMLHttpRequest(){
    var xmlreq = false;

    //Controllo il tipo di oggetto XMLHttpRequest da utilizzare
    if(window.XMLHttpRequest){
    //Per browser non Microsoft
    xmlreq = new XMLHttpRequest();
    }else if(window.ActiveXObject){
    //Cerco di creare l'oggetto via MS ActiveX
    try{
    //Nuove versioni per browser IE
    xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e1){ //Errore riscontrato durante la creazione dell'oggetto
    try{
    //Precedenti versioni per browser IE
    xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e2){ //Nuovo errore durante la creazione dell'oggetto
    xmlreq = false;
    }
    }
    }
    //Restituisco l'eventuale oggetto XMLHttpRequest
    return xmlreq;
    }
    /*

    */


    ---------------------------------------------------------------------------------------
    Penso che il problema si trovi qui:

    function handleResponse(req,id,delta,id2,prezzo_uni,sconto1 ,sconto2,k,output){
    return function(){
    //Controllo se l'oggetto req ha raggiunto lo stato finale
    if(req.readystate == 4){
    //Inoltre accertiamoci di aver ottenuto il messaggio 200 dal server,
    if (req.status == 200){
    //A questo punto richiamo la funzione che gestira' il risultato XML
    //XMLHandler(req.responseXML);
    cambia_quantita(id,delta,id2,prezzo_uni,sconto1,sc onto2);
    totale(k,output);

    }else{
    alert("Errore HTTP: " + req.status);
    }
    }
    }
    }


    Il problema è il seguente:
    Facendo un reload della pagina, la quantità del prodotto presente nel carrello, ritorna alla quantità di partenza. Quindi la variabile di sessione non viene aggiornata correttamente.
    Spero che qualcuno mi aiuti.

  2. #2
    Utente di HTML.it L'avatar di Akito
    Registrato dal
    Nov 2005
    Messaggi
    101
    Ciao, prova eliminando l'uso della cache del browser, può essere che facendo il reload, il browser ti visualizzi la pagina presente nella cache non ricaricando i dati aggiornati dal server.

    Ciao
    Akito

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.