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

    [Help] Calcolo fisso basato su metri lineari

    Buongiorno ragazzi!
    Sto lavorando ad un sito per un calcolo di preventivo per la stampa di striscioni che funziona cosi:

    - Numero di copie
    - Base
    - Altezza
    - Numero occhielli (vengono calcolati ogni 50cm in base ai metri lineari)

    Il mio problema è che ho un form
    codice:
    <input type="text" name="occhielli" id="numeric" value="" maxlength="12" onkeypress="return isNumberKey(event)" />
    il quale in automatico dovrebbe inserirmi il numero "standard" di occhielli (che sarebbero i buchi metallici per appendere gli striscioni) con la formula BASE+ALTEZZA*2(metri lineari) /50 (che sarebbero ogni quanto vanno posizionati gli occhielli in cm)

    Come posso fare? Contando che i form base e altezza sono così composti:
    codice:
    <input type="text" name="base" id="numeric3" maxlenght="10" onkeypress="return isNumberKey(event)" />
    
    <input type="text" name="altezza" id="numeric4" maxlenght="10" onkeypress="return isNumberKey(event)" />
    EDIT: Vi aggiungo il link a jsFiddle per capire come è strutturata la pagina ed avere un esempio: potete trovare la struttura qui

    Grazie!
    DavidePirelli
    Webdesigner & DTP

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma questa BASE+ALTEZZA*2/50 l'hai provata?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    In che senso?
    Facendola con la calcolatrice viene giusto, quindi la formula è questa..per ora l'ho fatto con PHP e viene giusto (a livelli di MQ e Metri Lineari), ma a me interessa che quando compilano base e altezza i clienti abbiano già nel campo occhielli il numero dato dalla forumula visibile, poi se vogliono cambiarlo lo cambiano.
    Perchè alla fine PHP mi elabora solo i dati che sono stati inseriti per metterli nei cookie e procedere con l'acquisto

    EDIT: Ho trovato questo:
    codice:
    <script language="javascript">
    function sum() {
    var a = parseInt(document.calcolopreventivo.base.value);
    var b = parseInt(document.calcolopreventivo.altezza.value);
    var c = a + b; <!-- sarebbe da modificare con la mia operazione --!>
    document.calcolopreventivo.occhielli.value = c; }
    </script>
    <input type="button" value="somma!" onClick="javascript:sum();">
    Ma lo fa solo attraverso un tasto "Calcola", non c'è la possibilità di farlo "istantaneo"?
    DavidePirelli
    Webdesigner & DTP

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    var c = (a + b*2/50); <!-- il 2 sono i metri --!>
    per il discorso del tasto se proesegui cosi è più semplice, altrimenti devi usare l'evento onblur sui campi ma la gestino degli eventi sui campi è sempre più complicata e dovrai modificare la funzione che somma che dovrà gestire i singoli campi
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Originariamente inviato da cavicchiandrea
    var c = (a + b*2/50); <!-- il 2 sono i metri --!>
    per il discorso del tasto se proesegui cosi è più semplice, altrimenti devi usare l'evento onblur sui campi ma la gestino degli eventi sui campi è sempre più complicata e dovrai modificare la funzione che somma che dovrà gestire i singoli campi
    On Blur? non è dovuto alla minimizzazione delle finestre? Pensavo di usare onChange..
    DavidePirelli
    Webdesigner & DTP

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    se prima devi eseguire l'addizione

    (a + b) * 2 / 50

    (a + b * 2 / 50) ti calcola b * 2 / 50 + a

    js esegue prima le moltiplicazioni e divisioni nell'ordine scritto dopo le addizioni e sottrazioni nell'ordine scritto.

    Massimo.

  7. #7
    Grazie delle riposte, ma forse non ho spiegato bene quello che mi serve, rispiego in breve le operazioni che dovrei fare, evidenziando in rosso quelle che ho già fatto.


    - inserisco la base dello striscione (B)
    - inserisco l'altezza dello striscione (H)
    -- in questo modo posso ottenere i metri lineari facendo (B+H)*2
    - dai metri lineari ricavo quanti occhielli ci vanno facendo la formula (B+H)*2 / 50

    - il dato che ricavo precedentemente voglio far si che mi venga inserito nel campo "NUMERO OCCHIELLI" istantaneamente appena compilo base e altezza
    DavidePirelli
    Webdesigner & DTP

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    buttato giù al volo http://webprogetti.it/formcalcola.asp sistematelo come meglio credi
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Originariamente inviato da cavicchiandrea
    buttato giù al volo http://webprogetti.it/formcalcola.asp sistematelo come meglio credi
    Grandissimo ti adoro! <3 ottimo sito comunque!

    EDIT: Scusa se ti rompo ancora, ho sistemato il codice come mi serviva..ora è cosi:
    codice:
    <script type="text/javascript">
    $(function(){
    	$("#base, #altezza").live({
    		focus : function(){$(this).val('')},
    		blur : function(){if($(this).val()=='')$(this).val(0);Calcola()},
    		change : function(){Calcola()}
    	})
    })
    function Calcola(){
    var	b = parseInt($("#base").val())
    var h = parseInt($("#altezza").val())
    var num = Math.floor((b+h) * 2 / 50) 
    $("#occhielli").val(num)
    }
    </script>
    Ho aggiunto la funzione per arrotondare per difetto, posso ora fagli fare delle sottrazioni o divisioni in base ad un dropdown menu?
    Nel senso, ora ho i valori per gli occhielli su tutto il perimetro, dovrei fare un dropdown che mi dica:
    "Su tutto il perimetro" (quello che hai fatto tu)
    "Lato destro e sinistro"
    "Lato superiore e inferiore"
    "Lato destro"
    "Lato sinistro"
    "Lato superiore"
    "Lato inferiore"

    E' possibile o diventa un casino?

    Grazie ancora!
    DavidePirelli
    Webdesigner & DTP

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.