Visualizzazione risultati 1 fino 7 di 7

Discussione: Form

  1. #1
    Larof non è connesso Neofita
    Data registrazione
    06-04-2003
    Residenza
    Cosenza
    Messaggi
    18

    Exclamation Form

    Ho la necessità di creare un form che mi moltiplichi il numero inserito in un campo per un valore dato a quel campo con valori diversi per ogni campo.

    Vi faccio subito un esempio pratico cosi si capisce meglio:

    Codice:
    Abbiamo 3 campi form dove inserire dei numeri
    Il campo 1 vale 10
    Il campo 2 vale 5
    Il campo 3 vale 1
    
    Inserisco 3 nel primo campo
    Inserisco 1 nel secondo campo
    Inserisco 5 nel terzo campo
    
    Premo il bottone calcola e mi esce la pagina con il risultato:
    3 x 10 = 30 
    1 x 5 = 5
    5 x 1 = 5
    
    Risultato che esce nella pagina: 40
    Avevo pensato ad una pagina html con richiamo ad un database ma non ho la minima idea di come debbo iniziare. Qualcuno ha gia fatto qualcosa di simile o conosce una pagina dove trovare un codice simile da poter modificare? O in caso estremo qualcuno puo darmi una mano?

  2. #2
    Ospite Guest

    Predefinito

    Ti ho creato questo script in JavaScript:

    Codice HTML:
    <script type="text/javascript">
    function calcolo(){
    var somma = 0;
    var e = document.getElementById('form');
    for (i=0;i < e.childNodes.length;i++)
             {
    	if(e.childNodes[i].nodeName == 'INPUT')
              somma += parseInt(e.childNodes[i].name)*(e.childNodes[i].value);
             } 
    document.write(somma);
    }
    </script>
    
    <form id="form" action="javascript:calcolo()">
    
    <input type="text" name="10">
    
    
    <input type="text" name="5">
    
    
    <input type="text" name="1">
    
    
    <button type="submit">Calcola</button>
    </form>

  3. #3
    Larof non è connesso Neofita
    Data registrazione
    06-04-2003
    Residenza
    Cosenza
    Messaggi
    18

    Predefinito

    Citazione Originalmente inviato da probid Visualizza messaggio
    Ti ho creato questo script in JavaScript:

    Codice HTML:
    <script type="text/javascript">
    function calcolo(){
    var somma = 0;
    var e = document.getElementById('form');
    for (i=0;i < e.childNodes.length;i++)
             {
    	if(e.childNodes[i].nodeName == 'INPUT')
              somma += parseInt(e.childNodes[i].name)*(e.childNodes[i].value);
             } 
    document.write(somma);
    }
    </script>
    
    <form id="form" action="javascript:calcolo()">
    
    <input type="text" name="10">
    
    
    <input type="text" name="5">
    
    
    <input type="text" name="1">
    
    
    <button type="submit">Calcola</button>
    </form>
    grazie mille funziona perfettamente

    *****

    usando quel codice cosa devo aggiungere per far si che il risultato sia seguito da un testo prefissato? ad esempio XXX gatti
    Ultima modifica di dementialsite : 16-12-2007 alle ore 11.31.42

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Ti basta sapere che l'argomento di document.write() è il codice HTML che vuoi che sia scritto sulla pagina... in sintesi ti basta scrivere:
    Codice:
    document.write (somma + ' gatti');
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Larof non è connesso Neofita
    Data registrazione
    06-04-2003
    Residenza
    Cosenza
    Messaggi
    18

    Predefinito

    eccomi con una nuova domanda: ho modificato il codice in modo che stampi il risultato sotto il form pero non mi piace la forma del risultato nel senso che adesso è del tipo 1234 monete di ottone ci sarebbe un modo per poter isolare le cifre in modo che esca ad esempio 1 oro 2 argento 3 bronzo 4 ottone? prendendo come imput la voce "somma" della funzione gia creata?

    questo è lo script gia creato:
    Codice:
    <script type="text/javascript">
    function calcolo(){
    var somma = 0;
    var e = document.getElementById('form');
    for (i=0;i < e.childNodes.length;i++)
             {
    	if(e.childNodes[i].nodeName == 'INPUT')
              somma += parseInt(e.childNodes[i].name)*(e.childNodes[i].value);
             } 
    document.getElementById("testo").innerHTML=("Il valore complessivo del pesce è "+somma+" monete di ottone");
    }
    </script>
    se volete vedere la pagina al momento attuale vi lascio il link: http://larof.altervista.org/pescatori/esempio.htm

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ho provato ad eseguire lo script ma mi dà sempre 0. Cosa vorresti fare di preciso?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Per prima cosa, prova a scrivere "input" minuscolo, perché la somma risulta essere sempre 0.
    Altro errore: tanto il nome quanto il valore di un campo di testo sono in teoria stringhe, quindi andrebbero entrambi convertiti con parseInt.
    In sintesi, questa è la riga da modificare:
    Codice:
    if(e.childNodes[i].nodeName == 'input')
              somma += parseInt(e.childNodes[i].name)*parseInt(e.childNodes[i].value);
    Quanto alla "conversione", devi avere ben chiari quali sono i "tassi di conversione" tra una moneta e l'altra, e in quale moneta siano i prezzi unitari che hai sul modulo. Da come scrivi sopra sembra che sia:
    - 1 bronzo = 10 ottone
    - 1 argento = 100 ottone (10 bronzo)
    - 1 oro = 1000 ottone (10 argento)
    e che tutti i prezzi unitari siano in ottone. Con queste ipotesi, una volta che hai calcolato la somma, procedi così:
    Codice:
    var ottone = somma % 10;
    var bronzo = Math.floor (somma / 10);
    var argento = Math.floor (bronzo / 10);
    bronzo = bronzo % 10;
    var oro = Math.floor (argento / 10);
    argento = argento % 10;
    document.write ('Hai speso: ' + oro + ' oro, ' + argento + ' argento, ' + bronzo + ' bronzo, ' + ottone + ' ottone');
    Se così non fosse, metti le conversioni corrette sulla falsa riga di questa...

    Stammi bene...

    Sposto la discussione, visto che è dall'inizio che ha deviato su JavaScript...
    Ultima modifica di dementialsite : 18-12-2007 alle ore 11.01.48
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •