Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Utente di HTML.it L'avatar di Frankos
    Registrato dal
    Nov 2002
    Messaggi
    505
    Si, adesso sembra che funziona tutto regolarmente.
    Ti ringrazio molto Mich_
    Sempre più in alto...
    www.webdition.com

  2. #12
    Utente di HTML.it L'avatar di Frankos
    Registrato dal
    Nov 2002
    Messaggi
    505
    VVoVe:

    chiedo venia! un errore c'é ancora

    dunque, io inserisco le mie belle quantità.
    se poi vado a correggere una delle quantità mettendo un altro valore va tutto bene, ma se inserisco un valore che non é un intero mi dà l'alert, mi azzera la quantità, ma non mi aggiorna il totale

    :master:
    Sempre più in alto...
    www.webdition.com

  3. #13
    Utente di HTML.it L'avatar di Frankos
    Registrato dal
    Nov 2002
    Messaggi
    505
    ecco, ho messo il calcolo del totale anche nella condizione in cui la quantità immessa non é intera.
    non so se é il metodo migliore ma funziona:

    // controlla se la quantità é un numero intero
    if(q.value!=parseInt(q.value)&&q.value!=""){
    alert("Inserire un numero intero !");
    q.value="";
    s.value="";
    //ricalcola il totale
    var tot = 0;
    for(var i=1; i<=2; i++) { // al posto di 2 metti l n. max
    var sub = f.elements["subtot"+i].value;
    if(sub == "") sub = 0;
    tot += parseFloat(sub);
    }
    // formatta con due decimali il campo totale
    stringatot = new String(Math.round(tot*100)/100);
    stringatot += (stringatot.indexOf(".")<0)?'.00':'00';
    stringatot = stringatot.substr(0,stringatot.indexOf(".")+3);
    f.totale.value = stringatot;
    return false;
    }else{
    // moltiplica quantità per prezzo
    subt = q.value * p.value;
    // formatta con due decimali ogni campo subtotale
    stringa = new String(Math.round((subt)*100)/100);
    stringa += (stringa.indexOf(".")<0)?'.00':'00';
    stringa = stringa.substr(0,stringa.indexOf(".")+3);
    s.value=stringa;

    // calcola valore totale
    var tot = 0;
    for(var i=1; i<=2; i++) { // al posto di 2 metti l n. max
    var sub = f.elements["subtot"+i].value;
    if(sub == "") sub = 0;
    tot += parseFloat(sub);
    }
    // formatta con due decimali il campo totale
    stringatot = new String(Math.round(tot*100)/100);
    stringatot += (stringatot.indexOf(".")<0)?'.00':'00';
    stringatot = stringatot.substr(0,stringatot.indexOf(".")+3);
    f.totale.value = stringatot;
    }
    }

    spero che ora sia tutto a posto
    Sempre più in alto...
    www.webdition.com

  4. #14
    scusate se riapro questa discussione, ma come faccio a fare la somma di campi senza sapere prima il numero di campi da sommare? e si può fare che ogni volta che viene modificato un dato viene ricalcolato completamente il totale?

    grazie mille
    ratatuia

  5. #15
    Utente di HTML.it L'avatar di Frankos
    Registrato dal
    Nov 2002
    Messaggi
    505
    Cosi' come ho postato il codice il totale viene ricalcolato in ogni caso se vado a cambiare una quantita in uno dei campi.

    Per quanto riguarda il numero di campi, ho adattato questo codice inserendo al posto di 2 campi, come nell'esempio, una variabile che contiene il numero di articoli presenti in un database.

    Ovviamente devi tenere conto di questa variabile anche per costruire i campi del form.
    Sempre più in alto...
    www.webdition.com

  6. #16
    mi potresti evidenziare questa parte in cui c'è la variabile con il numero di articoli? grazie mille

  7. #17
    Utente di HTML.it L'avatar di Frankos
    Registrato dal
    Nov 2002
    Messaggi
    505
    allora, estrai dal tuo database gli articoli e dai alla variabile $k il valore del numero di articoli con cui poi costruisci i campi del form:

    <form name="form1" method="post" action="inviaordine.php">
    <?php
    $k=0;
    $sqlof="SELECT * FROM offerte ORDER BY posizione ASC";
    $risultati_mysqlof=mysql_query($sqlof,$connessione );
    $num_righeof=mysql_num_rows($risultati_mysqlof);
    if ($num_righeof!=0){
    while($rigaof=mysql_fetch_array($risultati_mysqlof ))
    {
    $k=$k+1;
    $descrizioneof=$rigaof["descrizione"];
    $prezzoof=$rigaof["prezzo"];
    $prezzoof=number_format($prezzoof, 2, '.', '');
    ?>
    <input name="item<?=$k?>" type="text" id="item<?=$k?>" value="<?=$descrizioneof?>">
    <input name="prezzo<?=$k?>" type="text" id="prezzo<?=$k?>" value="<?=$prezzoof?>">
    <input name="quant<?=$k?>" type="text" class="modulo" id="quant<?=$k?>" size="6" onKeyup="subtotale(<?=$k?>)">
    <input name="subtot<?=$k?>" type="text" class="modulo" id="subtot<?=$k?>" size="10" onFocus="this.blur()">
    <?
    }
    }
    ?>

    Non sono stato a metterti tutti idettagli di costruzione della tabella perché il mio codice é molto lungo, ma il principio é questo.
    In pratica anche i nomi dei campi prendono la variabile.
    Sempre più in alto...
    www.webdition.com

  8. #18
    ok, grazie mille...

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