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

    [JAVASCRIPT + HTML] Sommare variabili e visializzare il risultato

    Salve a tutti
    ho creato questo script facendo ricerche e studiando un po' ma sono ferma a un punto...
    l'obbiettivo è creare una pagina HTML che genera un preventivo personalizzato.

    Ho dei button radio e checkbox con dei valori fissi,
    con java in base a quante checkbox sono flaggate sommo i valori ottenendo dei valori parziali (es. finestra1 + finestra2 = 20 , tenda1+tenda2+tenda3 = 3) fin qui funziona li sommo parzialmente e li mostro in campi input....
    adesso io voglio prendere i valori parziali e sommarli (20+3)

    ho provato di tutto sono sicura che è una sciocchezza ma non riesco a capire quale.
    Il link per vedere il risultato http://www.gardenlegno.it/index.php?...=article&id=77

    FUNZIONE JAVASCRIPT
    codice:
    <script language="javascript" type="text/javascript">
    function calcolo() {
        var cop = eval(document.form.coperture);
      for(var i=0; i<cop.length; i++) {
          var copparz=eval(cop[i].value)
        if(cop[i].checked) {
          document.formpreventivo.totalecop.value = copparz;
          break;
        }
      } 
      var mont = eval(document.form.montaggio);
      for(var i=0; i<mont.length; i++) {
          var montparz=eval(mont[i].value)
        if(mont[i].checked) {
          document.formpreventivo.totalemont.value = montparz;
          break;
        }
      }
      var trasp = eval(document.form.trasporto);
      for(var i=0; i<trasp.length; i++) {
          var traspparz=eval(trasp[i].value)
        if(trasp[i].checked) {
          document.formpreventivo.totaletrasp.value = traspparz;
          break;
        }
      } 
      
    var sumarabo = 0;
      var posarabo, elem;
      for (i=0; i<16; i++) {
        posarabo = 'a'+i;
        elem = document.getElementById(posarabo);
        if (elem.checked == true) { sumarabo += eval(elem.value); }
      }
      document.formpreventivo.totalearabo.value = sumarabo;
        
      var colorearabo = document.form.colorearabo;
      for(var i=0; i<colorearabo.length; i++) {
          var colorearaboparz=colorearabo[i].value
        if(colorearabo[i].checked) {
          document.formpreventivo.checkcolorearabo.value = colorearaboparz;
          break;
        }
      }
     var sumgoccia = 0;
      var posgoccia, elem;
      for (i=0; i<4; i++) {
        posgoccia = 'b'+i;
        elem = document.getElementById(posgoccia);
        if (elem.checked == true) { sumgoccia += eval(elem.value); }
      }
      document.formpreventivo.totalegoccia.value = sumgoccia;
      
      var coloregoccia = document.form.coloregoccia;
      for(var i=0; i<coloregoccia.length; i++) {
          var coloregocciaparz=coloregoccia[i].value
        if(coloregoccia[i].checked) {
          document.formpreventivo.checkcoloregoccia.value = coloregocciaparz;
          break;
        }
      }
       var sumriga = 0;
      var posriga, elem;
      for (i=0; i<4; i++) {
        posriga = 'c'+i;
        elem = document.getElementById(posriga);
        if (elem.checked == true) { sumriga += eval(elem.value); }
      }
      document.formpreventivo.totaleriga.value = sumriga;
      
      var coloreriga = document.form.coloreriga;
      for(var i=0; i<coloreriga.length; i++) {
          var colorerigaparz=coloreriga[i].value
        if(coloreriga[i].checked) {
          document.formpreventivo.checkcoloreriga.value = colorerigaparz;
          break;
        }
      }
       var sumrighe = 0;
      var posrighe, elem;
      for (i=0; i<4; i++) {
        posrighe = 'd'+i;
        elem = document.getElementById(posrighe);
        if (elem.checked == true) { sumrighe += eval(elem.value); }
      }
      document.formpreventivo.totalerighe.value = sumrighe;
      
      var colorerighe = document.form.colorerighe;
      for(var i=0; i<colorerighe.length; i++) {
          var colorerigheparz=colorerighe[i].value
        if(colorerighe[i].checked) {
          document.formpreventivo.checkcolorerighe.value = colorerigheparz;
          break;
        }
      }
       var sumtenda = 0;
      var postenda, elem;
      for (i=0; i<8; i++) {
        postenda = 'e'+i;
        elem = document.getElementById(postenda);
        if (elem.checked == true) { sumtenda += eval(elem.value); }
      }
      document.formpreventivo.totaletenda.value = sumtenda;  
      
      var coloretenda = document.form.coloretenda;
      for(var i=0; i<coloretenda.length; i++) {
          var coloretendaparz=coloretenda[i].value
        if(coloretenda[i].checked) {
          document.formpreventivo.checkcoloretenda.value = coloretendaparz;
          break;
        }
      } 
    var struttura=3600;
    var somma= struttura+eval(document.formpreventivo.totalearabo.value)+eval(document.formpreventivo.totalegoccia.value)+eval(document.formpreventivo.totaleriga.value)+eval(document.formpreventivo.totalerighe.value)+eval(document.formpreventivo.totaletenda.value)+copparz+montparz+traspparz;
    
    document.formpreventivo.totalesomma.value=somma;
    
    } 
    </script>
    IN ALLEGATO L'HTML

    Attendo vostre notizie
    Grazie mille
    File allegati File allegati

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    (es. finestra1 + finestra2 = 20 , tenda1+tenda2+tenda3 = 3) fin qui funziona li sommo parzialmente e li mostro in campi input....
    adesso io voglio prendere i valori parziali e sommarli (20+3)
    supponendo che finestra/tenda siano numerici
    var finestre = (finestra1 + finestra2)
    var tende = (
    tenda1+tenda2+tenda3)
    var sommaprodotti = (finstre+tende)

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ciao
    si io ho fatto così
    premetto che arabo e goccia sono un tipo di finestra
    sumarabo= alla somma delle finestre arabo
    sumgoccia= alla somma delle finestre goccia
    poi quando le sommo.... non si vede niente
    grazie per il supporto

    codice:
     var sumarabo = 0;
      var posarabo, elem;
      for (i=0; i<16; i++) {
        posarabo = 'a'+i;
        elem = document.getElementById(posarabo);
        if (elem.checked == true) { sumarabo += eval(elem.value); }
      }
      document.formpreventivo.totalearabo.value = sumarabo;
    
    var sumgoccia = 0;
      var posgoccia, elem;
      for (i=0; i<4; i++) {
        posgoccia = 'b'+i;
        elem = document.getElementById(posgoccia);
        if (elem.checked == true) { sumgoccia += eval(elem.value); }
      }
      document.formpreventivo.totalegoccia.value = sumgoccia;
    
    var somma = eval(document.formpreventivo.totalearabo.value)+eval(document.formpreventivo.totalegoccia.value)
    
    document.formpreventivo.totalesomma.value=somma;

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova così
    var somma = (sumarabo+sumgoccia)
    se non funziona ricontrolla tutto il processo passo passo, è un po' complesso per chi non la sviluppato districarsi nel codice.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Quote Originariamente inviata da mrcgrl91h41f91 Visualizza il messaggio
    Il link per vedere il risultato http://www.gardenlegno.it/index.php?...=article&id=77

    FUNZIONE JAVASCRIPT
    codice:
      var coloretenda = document.form.coloretenda;
      for(var i=0; i<coloretenda.length; i++) {
          var coloretendaparz=coloretenda[i].value
        if(coloretenda[i].checked) {
          document.formpreventivo.checkcoloretenda.value = coloretendaparz;
          break;
        }
      } 
    var struttura=3600;
    var somma= struttura+eval(document.formpreventivo.totalearabo.value)+eval(document.formpreventivo.totalegoccia.value)+eval(document.formpreventivo.totaleriga.value)+eval(document.formpreventivo.totalerighe.value)+eval(document.formpreventivo.totaletenda.value)+copparz+montparz+traspparz;
    
    document.formpreventivo.totalesomma.value=somma;
    
    } 
    </script>
    Ciao mrcgrl91h41f91,
    ho guardato la tua pagina e la console javascript segnala un errore dove cerchi di usare "coloretenda". Effettivamente nell'html della pagina l'unico elemento del form con name "coloretenda" è commentato (quindi come se non ci fosse)

  6. #6
    SOLUZIONE: ho eliminato lo script del coloretenda e funziona tutto tranquillamente

    grazie mille willybit!!! sapevo che era una mia distrazione ma sai com'è il codice più lo vedi e più non trovi l'errore!!
    grazie anche a te cavicchiandrea avevo provato anche quello...
    grazie ragazzi

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.