Problema DOPPIA richiesta HTTP

denver87

Nuovo Utente
6 Set 2010
1
0
0
Salve sto costruendo un'applicazione web in in php e javascript e sono di fronte ad un problemaccio che mi porto dietro da ben una settimana.
è un sito di e-commence e ho a che fare con la pagina FAI ORDINE che funziona in questo modo:
1-inserisci la password
2-inserisci codice articolo
3-quantita
4-PREMI SU AGGIUNGI e dinamicamente viene calcolato il prezzo totale e stampato in un nodo.
5-cliccando su ORDINA parte l'ordine e vorrei visualizzare ancora nella stessa pagina un altro nodo con scritto: CODICE EFFETTUATO CON SUCCESSO! Codice ordine, quantità e prezzo totale.

il problema è questo: quando premo su aggiungi, tutto viene sisualizzato correttamnte, ma nella seconda richiesta di connessione HTTP ( con ORDINA) ciò che visualizzo non è quello che voglio. vi mostro il codice:

HTML:
<input type="button" name="Aggiungi" value="Aggiungi"  onClick="prezzo()">
        <input type="button" name="Aggiungi2" value="Annulla"  onClick="rimuovi()">
      ..
        <label></label>

      <p  align="center">Descrizione elementi ordinati &nbsp;</p>
    ......
          <input type="button" name="invia" value="Ordina"  onClick="ordina()">

Codice:
    function prezzo() {
       
       objHTTP=XMLHttp();
        if (objHTTP!=null)      {

       //apertura della connessione HTTP
        codice=document.getElementById("codiceProdotto");
        objHTTP.onreadystatechange=aggiungi;
        objHTTP.open("GET","GestioneGET.php?menu=prendiPrezzo&codice="+escape(codice.value), true);
       
        objHTTP.send(null);
       aggiungi();
       
       
         }
       else
         {
         alert("Your browser does not support XMLHTTP.");
         }
    }

    function XMLHttp()
    {
        var xmlhttp = null;

       if (window.XMLHttpRequest)    
           {// code for IE7, Firefox, Opera, etc.
               xmlhttp=new XMLHttpRequest();
             http_request.overrideMimeType('text/xml');
            }    
       else
          if (window.ActiveXObject)
            {// code for IE6, IE5
               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");     
            }
          else
            {
            alert("Your browser does not support XMLHTTP.");
            }
       return xmlhttp
    }


    function set(cod,prezz,quan) {
       
        objHTTP = XMLHttp();   
       //apertura della connessione HTTP
        passw=document.getElementById("pass");
       objHTTP.open("GET","GestioneGET.php?menu=assegnaOrdine&cod="+escape(cod)+"&prezzo="+escape(prezz)+"&quantita="+escape(quan), true);
        objHTTP.send(null);
       objHTTP.setRequestHeader("connection", "close");
       
    }
       


    function aggiungi()
    {   
        if (objHTTP.readyState == 4 )
          {
                if (objHTTP.status == 200)
             {
             
              agg(objHTTP.responseText); // funzione funzionante che non vi presento
             
             }
             else {
                      alert('C\' è un problema con la rischiesta.');
                  }
            }
       }   

         
    function ordina()
    {
       var l=0;
       if (document.formFaiOrdine.pass.value.length == 0)
       {
           alert("Il campo password deve contenere almeno un carattere");
          document.formFaiOrdine.pass.focus();
          return;

        }
        while(l<i)
          {
          cod=articoli [l];
          prezz=prezzi [l];
          quan=quantita [l];
           set(cod,prezz,quan);
          l++;
          }
          if (confirm("Confermare i dati inseriti ?"))
        {
          passw=document.getElementById("pass").value;
          quantita=document.getElementById("quantita").value;
          totale=document.getElementById("totale").value;

          objHTTP=new XMLHttpRequest();
          if (objHTTP!=null)     
          {
          var params=("menu=formFaiOrdine&pass="+escape(passw)+"&qua="+escape(quantita)+"&totale="+escape(totale));
          objHTTP.open("post", "GestionePOST.php", true);
          
          objHTTP.setRequestHeader("content-type", "application/x-www-form-urlencoded");
          objHTTP.setRequestHeader("Content-length", params.length);
          
          objHTTP.onreadystatechange=ordeffett(objHTTP, quantita,totale);
          objHTTP.send(params);

          }
       }
    }

    function ordeffett(objHTTP,quantita,totale)    // sembra che non entri qui dentro, forse non
    {                                                                //supera la prima if
        if (objHTTP.readyState == 4)
          {
                if (objHTTP.status == 200)
             {
              cordine=objHTTP.responseText;
              alert(cordine);  // non stampa nulla
              successo(cordine,quantita,totale);}
             }
             else {
                      alert('C\' è un problema con la rischiesta.');
                  }
            }
    }   

    function successo(cordine,quantita,totale)
    {
       frase = document.createTextNode("ORDINE EFFETTUATO CON SUCCESSO.  Codice ordine:"+cordine+"\n quantita:"+quantita+"\n prezzo totale:"+totale);
       // poi lo attacchiamo al nodo di riferimento   
        document.getElementById("content2").appendChild(frase);
    }

Sembra che vadano ad accavallarsi le 2 richieste e di conseguenza quando a richiamare per la seconda volta objHTTP.responseText va tutto in palla...!!!!!!!!!!!!!
perchè????????????
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Gallery con Tag foto: problema doppia chiamata ajax con JQuery jQuery 2
M Problema doppia autenticazione HTML e CSS 4
S Problema con doppia vetrina PHP 0
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 0
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 7
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1
M Problema Wi-Fi Linux Linux e Software 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
Daniele_Carrara Problema Aperture Mailup Email Marketing 5
F PROBLEMA ACCESSO INSTAGRAM Discussioni Varie 2
R Problema connessione db PHP 7
M problema if PHP 2
G Problema con Get page PHP 4
N Problema passaggio variabili tra pagine PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
H problema carrello woocommerce PHP 2
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
M Problema su query JOIN in tre tabelle PHP 0
S Problema esportazione tabelle Mysql in Excel PHP 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
M Problema su update di 3 tabelle PHP 1
T problema con select dinamica con jquery Javascript 0

Discussioni simili