Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    182

    Comando check moltiplica prezzo fisso per quantitativo

    codice:
     // Se la casella e' selezionata (checked) la calcolo
    
      if(num) {
       if(document.preventivo.TASSE.checked) {
         document.preventivo.quantoiva.value=35;
       }
       else document.preventivo.quantoiva.value=0;
      }
    Ora vorrei che la variabile "quantoiva" non sia di valore fisso 35 come è impostato ora, ma che quel 35 venga moltiplicato per la variabile "quanti" (ovvero il numero dei prodotti).

    com'è il comando?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    document.preventivo.quantoiva.value=(35*numeroprod otti);
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    182
    Non voglio farmi odiare.. ma non riesco davvero , ed è un pomeriggio che sto qui!

    Vi posto il codice: <script>
    codice:
    // Funzione che crea un array contenente n elementi
    
    function MakeArray(n) {
      this.length = n;
      for(var i = 1; i <= n; i++) this[i] = 0;
      return this
    }
    
    // Funzione che calcola l'IVA del 19% e la somma al totale
    
    function tassalo(num) {
    
    // Se l'iva e' selezionata (checked) la calcolo
    
      if(num) {
       if(document.preventivo.TASSE.checked) {
         document.preventivo.quantoiva.value=35;
       }
       else document.preventivo.quantoiva.value=0;
      }
    
    // A questo punto faccio il totale.
    
      var temp=0;
      if(document.preventivo.costotot.value.length != 0) {
        temp+=parseFloat(document.preventivo.costotot.value);
      }
      if(document.preventivo.quantoiva.value.length != 0) {
        temp+=parseFloat(document.preventivo.quantoiva.value);
      }
      document.preventivo.costototiva.value=temp;
    }
    
    // Questa funzione fa la somma del costo dei prodotti
    // che sono stati selezionati.
    
    function calcola(sel) {
    
    // Crea un array in cui metto i prezzi passati come argomenti.
    
      var Prezzi_Array = new MakeArray(calcola.arguments.length);
      for(var i=1; i<calcola.arguments.length; i++) {
        Prezzi_Array[i-1] = parseInt(calcola.arguments[i]);
      }
    
    // Prendo l'ultimo carattere del nome dell'elemento che ha
    // chiamato la funzione (quanti0, quanti1 daranno 0, 1 ecc.)
    // per sapere quale selettore � stato cambiato.
    
      var line=sel.name.charAt(sel.name.length-1);
    
    // Ora se il quantiX di tale linea ha una lunghezza, significa che c'e'
    // un valore scritto dentro. Per accaderci si usa "quanti"+line che
    // ci dara' quanti0, quanti1 ecc.
    
      if(document.preventivo["quanti"+line].value.length != 0) {
    
    // Controllo che sia stato scritto un numero (se non � un numero
    // risultera' un NaN, ovvero Not a Number), e che sia diverso da
    // zero. Se non � un numero, visualizzo una finestra di alert.
    
        var quanti=parseInt(document.preventivo["quanti"+line].value);
          if((quanti == 0) || isNaN(quanti)) {
             alert("La quantita' alla linea "+(++line)+" non e' un numero!");
             return;
          }
    
        var pprez=0;
    
    // Trovo il prezzo del prodotto selezionato.
    
          pprez = Prezzi_Array[document.preventivo["prodotto"+line].selectedIndex];
    
    // Controllo che sia stato selezionato qualcosa, in caso contrario
    // visualizzo una finestra di alert con l'errore.
    
        if((pprez == 0) || isNaN(pprez)) {
           alert("Il prodotto alla linea "+(++line)+" non e' stato scelto!");
           return;
        }
    
    // Scrivo il prezzo singolo e il totale
    
        document.preventivo["prodprezzo"+line].value = pprez;
        document.preventivo["prodtot"+line].value = eval(pprez*quanti);
      }
     
      var i = 0;
      var total = 0;
    
    // Calcolo il costo totale sommanto i totali dei singoli prodotti
    
      while(document.preventivo["prodtot"+i]) {
        if(document.preventivo["prodtot"+i].value.length != 0) {
          total+=parseInt(document.preventivo["prodtot"+i].value);
        }
      i++;
      }
    
      document.preventivo.costotot.value = total;
    
    // Calcoliamo l'iva eventuale e il totale ivato.
    
      tassalo(total);
    }
    io avrei un imput type che "legge" il quantitativo immesso dall'utente

    codice:
    <INPUT TYPE=TEXT NAME="quanti0" SIZE=3 onChange='calcola(this, "150");'>
    Quindi la variabile che andrebbe moltiplicata per 35 dovrebbe essere "quanti0", giusto? però se metto che document.preventivo.quantoiva.value=35*quanti0 non mi funziona più il comando; se invece lo metto =(35*'quanti0') mi dà come risultato NaN

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    (35*document.preventivo.quanti0.value)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    182
    TI devo fare una statua!! Grazie 1000!

    Ora purtroppo resta il problema di quell'altro script riguardo la conferma dell'acquisto: se premo su acquista e confermo, il testo compare per un decimo di secondo per poi scomparire. Ho notato che anche i form si azzerano, quindi le cose sono collegate.

    Ovviamente questo è un altro problema quindi non mi aspetto per forza una risposta.

    Grazie comunque!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    il richiamo alla funzione lo fai al submit (onsubmit="return NOMEFUNZIONE()") del form? o dove? Metti un link alla pagina pubblica (tuosito.xxxx/tuapaginademo.xxxx)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    182
    Questa è a pagina..
    http://starprojects.altervista.org/b..._settore1.html


    Questo invece è il codice "finale" dei form e dello script che riproduce l'alert


    codice:
    <FORM NAME="preventivo"><TABLE ALIGN=RIGHT>
       <TR><TD ROWSPAN=8><PRE>       </PRE></TD>
       <TH ALIGN=RIGHT>Quant.</TH><TH ALIGN=RIGHT>Prodotto</TH>
       <TH ALIGN=center>Prezzo</TH><TH ALIGN=center>Totale</TH>
       <TH ROWSPAN=8><PRE>       </PRE></TD></TR>
     <TR><TD VALIGN=TOP ALIGN=RIGHT>
       <INPUT TYPE=TEXT NAME="quanti0" SIZE=3 onChange='calcola(this, "150");'>
       </TD><TD VALIGN=TOP>
         <SELECT NAME="prodotto0" onChange='calcola(this, "150");'>
         
         <OPTION SELECTED>Biglietto "Sting rocks green" settore_1</SELECT></TD>
       <TD VALIGN=TOP><INPUT TYPE=TEXT NAME="prodprezzo0" size=8 onFocus="this.blur();"></TD>
       <TD VALIGN=TOP><INPUT TYPE=TEXT NAME="prodtot0" size=8 onFocus="this.blur();"></TD>
       </TR>
       
       </TR><TR><TD></TD><TD></TD><TH>Costo</TH>
       <TD><INPUT TYPE=TEXT NAME=costotot SIZE=8 onFocus="this.blur();"></TD>
       </TR><TR><TH COLSPAN=2 ALIGN=RIGHT>Pass Backstage 
        <INPUT TYPE=checkbox name=TASSE onClick="tassalo(document.preventivo.costotot.value);">
        </TH><TH></TH>
        <TD><INPUT TYPE=TEXT NAME=quantoiva SIZE=8 onFocus="this.blur();"></TD>
        </TR><TR><TD></TD><TD></TD></TR><TR><TD></TD><TD></TD><TH>Totale euro</TH>
        <TD><INPUT TYPE=TEXT NAME=costototiva SIZE=8 onFocus="this.blur();"></TD>
       </TR><tr><td>
    
    
    <p class="button1">Acquista</p>
    
    
    </td></tr></TABLE></FORM><div id="messaggio_conferma"></div></RIGHT>
    Come tu dicevo funziona tutto alla perfezione, sia form che script. L'unica pecca è questa cosa dell'alert che attivato dal button, sia che confermi che annulli, mostra ovviamente il testo corrispondente, ma in un millesimo di secondo, dopodichè è come se facesse un refresh della pagina, in quanto sparisce il testo dal div "messaggio_conferma" e i campi di form si svuotano.

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Premesso che non funziona bene, attualmente se non compili nessun campo non segnala nulla cosa che dovrebbe fare (vedendo la funzione)
    togli il click da questo
    <p class="button1">
    Acquista
    </p>
    mettici questo
    <input type="submit" value="invia form" id="inviodati" name="inviodati" />
    poi aggiungi onsubmit al form cosi.
    <FORM NAME="preventivo" id="preventivo" onsubmit="return conferma()" method="POST o GET vedi tu quale" action="qui-ci-va-la-pagina-di-destinazione.xxxx" >
    Se non funziona bisogna studiarsi meglio lo script e la pagina
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    182
    E' dannatamente PERFETTO! Ahahaha Mi devi fare da insegnante!

    Ovviamente per i nuovi acquisti non basta mettere un form di reset che mi cancelli il testo dal div :S

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