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

    [Js] Piccolo problemino con i form

    Allora ho una pagina php che da un dbase prende una lista (di dimensione non fissa) con varie voci, quantità e prezzi. In PHP mi calcolo i totali x ogni riga, e poi il totale assoluto.

    I dati li riporto in una tabella, in degli input i cui nomi partono da 1, poi 2, 3, ecc...

    Devo fare in modo che cambiando la quantità mi aggiorni il totale relativo a quella riga e il totale in assoluto.

    Il form si chiama "tabella" e ogni singolo input, come ho detto sopra, 1, 2, 3 ecc...

    Mi sono fatto una funzione change(quantita, theform) dalla quale dovrei fare tutto.

    Quantità sarebbe il numero dell'input associato alla quantità (il dato modificabile). theform è invece il "this.form".
    Il totale non è altro che quantita+1.
    Però non riesco a gestire nulla, mi da errori di continuo. Teoricamente facendo theform.quantita.value dovrei riuscire ad acquisire il valore, no? Invece non lo posso fare...

    Con quantita+1 ottengo l'input contenente il totale relativo alla cella. Poi, come lo posso settare? Cioè, come vado a scrivere nell'input?

    Grazie
    Ciao
    Massimo

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E` meglio se posti:
    - una "riga", cioe` un esempio di come sono fatti gli input relativi ad un prodotto (l'HTML);
    - il "totale compelssivo" (l'HTML);
    - eventuali vincoli.

    Altrimenti un discorso teorico porta via piu` tempo ed e` difficile da interpretare.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ciao,
    ho fatto un po' fatica a capire bene come sia strutturata precisamente la tua tabella, ti propongo perciò questa versione alternativa che dovrebbe funzionare

    <script>
    function calcola(){
    var numero_prodotti = document.getElementById("numero_prodotti").value;
    var totale = 0;
    for(i=1; i<=numero_prodotti; i++){
    var parziale = document.getElementById("p"+i).value*document.getE lementById("q"+i).value;
    document.getElementById("t"+i).value = parziale
    totale+= parziale;
    }
    document.getElementById("totale").innerHTML = totale+"€"
    }
    </script>
    <form name="tabella">
    <input type="hidden" id="numero_prodotti" value="3">
    <table>
    <tr>
    <th>Nome prodotto</th>
    <th>Prezzo unitario</th>
    <th>Quantità</th>
    <th>Totale</th>
    </tr>
    <tr>
    <td>Prodotto 1</td>
    <td><input type="text" readonly="yes" value="500" id="p1">€</td>
    <td><input type="text" id="q1" value="1"></td>
    <td><input type="text" readonly="yes" id="t1" value="500">€</td>
    </tr>
    <tr>
    <td>Prodotto 2</td>
    <td><input type="text" readonly="yes" value="500" id="p2">€</td>
    <td><input type="text" id="q2" value="2"></td>
    <td><input type="text" readonly="yes" id="t2" value="1000">€</td>
    </tr>
    <tr>
    <td>Prodotto 3</td>
    <td><input type="text" readonly="yes" value="250" id="p3">€</td>
    <td><input type="text" id="q3" value="3"></td>
    <td><input type="text" readonly="yes" id="t3" value="750">€</td>
    </tr>
    <tr>
    <td colspan="4" align="center"><input type="button" onClick="calcola()" value="ricalcola il totale"></td>
    </tr>
    <tr>
    <th colspan="3" align="right">Totale:</th>
    <td id="totale">2250€</td>
    </tr>
    </table>
    </form>

    La struttura con i dati che vedi dovrebbero essere riempiti la prima volta con qualche linguaggio lato server e poi verranno completamente gestiti da js.
    http://www.beavermag.it

  4. #4
    Avete ragione mi sono espresso proprio male.

    L'unico comando che mi interessava era document.getElementById(campo).value .

    Ora ho risolto e funziona tutto alla perfezione

    Grazie
    Massimo

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.