Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    74

    quantita:[object Event]

    Salve,
    sto costruendo unìapplicazione web e-commerce e nella sezione FAI ORDINE mi trovo di fronte al problema seguente:

    quando aggiungo un nodo dopo aver premuto sul bottone ordina, quello che firefox mi restituisce è questo:
    Codice PHP:
    ORDINE EFFETTUATO CON SUCCESSO
    Codice ordine:27 
    quantita
    :[object Event
    prezzo totale:undefined 
    questo è il pezzo di codiceinteressato :
    codice:
    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 ?")) 	 
    {
     alert(quantita) ; --------->qui stampa un valore indefinito      
     	    passw=document.getElementById("pass"); 
    		quantita=document.getElementById("quantita").value;
      		totale=document.getElementById("totale"); 
               	objHTTP=XMLHttp(); 
    		if (objHTTP!=null) 	 
      		{ 
    var params=("menu=ordine&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.send(params); 
     		ordeffett(quan,totale); 	
    	objHTTP.setRequestHeader("connection", "close"); 	
    	} 	 	
     } 	
      } 
    
    function ordeffett(quantita,totale)
    {	
    	
        if (objHTTP.readyState == 4 ) 
    		{
                if (objHTTP.status == 200) 
    			{
    			alert(quantita) ; --------->qui stampa un valore indefinito      
    			 //  creiamo un nuovo nodo di testo
    				var ordine= objHTTP.responseText;
        			frase = document.createTextNode("ORDINE EFFETTUATO CON SUCCESSO.
      Codice ordine:"+ordine+"\n quantita:"+quantita+"\n prezzo totale:"+totale);
    				// poi lo attacchiamo al nodo di riferimento	
        			document.getElementById("content2").appendChild(frase);
    			 
    
    			} 
    			else {
                      alert('C\' è un problema con la rischiesta.');
    			     }
            }
    	}		
          
    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);
    }

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    objHTTP.onreadystatechange=ordeffett; // ovviamente non passi parametri...
    objHTTP.send(params);
    ordeffett(quan,totale); // quando viene eseguita secondo te?

    Sono solo indicazioni sui punti da ri-ragionare, non ho esaminato l'intero flusso
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    74
    hai ragione, il problema era proprio quello oltre ad altri errori stupidi.
    Ora a differenza di prima che ottenevo questo output:ORDINE EFFETTUATO CON SUCCESSO. Codice ordine:27 quantita:[object Event] prezzo totale:undefined
    ora ho quest'altro:
    ORDINE EFFETTUATO CON SUCCESSO. Codice ordine: quantita:4 prezzo totale:60
    Queste sono le modifiche (in rosso):

    if (confirm("Confermare i dati inseriti ?"))
    {
    passw=document.getElementById("pass").value;
    quantita=document.getElementById("quantita").value ;
    totale=document.getElementById("totale").value;

    var objHTTP = new XMLHttpRequest();
    if (objHTTP!=null)
    {
    var params=("menu=ordine&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(passw,quan,totale);
    objHTTP.send(params);
    objHTTP.setRequestHeader("connection", "close");
    }
    }


    function ordeffett(password,quantita,totale)
    {

    if (objHTTP.readyState == 4 )
    {
    if (objHTTP.status == 200)
    {
    // creiamo un nuovo nodo di testo
    var $ordine= objHTTP.responseText;
    alert($ordine); //non stampa nulla mentre prima funzionava, vedi l'altro mio post in cui veniva stampato solo il codice ordine e non la quantità e totale
    frase = document.createTextNode("ORDINE EFFETTUATO CON SUCCESSO. Codice ordine:"+$ordine+"\n quantita:"+quantita+"\n prezzo totale:"+totale);

    document.getElementById("content2").appendChild(fr ase);

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    74
    niente, nessuna soluzione?

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Proviamo a mettere a confronto le due chiamate, forse ci arrivi da sola/o

    1)
    codice:
    objHTTP.open("GET","GestioneGET.php?menu=assegnaOrdine&cod="+escape(cod)+"&prezzo="+escape(prezz)+"&quantita="+escape(quan), true);
    2)
    codice:
    var params=("menu=ordine&pass="+escape(passw)+"&qua="+escape(quantita)+"&totale="+escape(totale));
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    74
    stai sbagliando, la prima è una richiesta di connessione via get e va fatta in quel modo ( send(null) ), per quanto riguarda invece la seconda, è una richiesta di connessione via POST e va effettuata in maniera leggermente diversa rispestto al get.


    codice:
    var params=("menu=ordine&pass="+escape(passw)+"&qua="+escape(quantita)+"&totale="+escape(totale));  //variabile che verrà passata dentro al send,ciò perchè direttamente  
    dentro al send non lo riconosceva
    objHTTP.open("post", "GestionePOST.php", true);
    objHTTP.send(params);

    quindi, questo non è l'errore.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    74
    comunque sul database l'ordine viene scritto, il problema è solo nella visualizzasione!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.