Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Calcolo automatico con checkbox

    Ciao a tutti,
    per prima cosa auguri di buon anno.
    Ho navigato per giorni cercando di trovare una risposta ma niente.
    Spero che scrivendo sul "non prusulta dei siti" riesca atrovare la soluzione.

    dunque questo è il mio script
    codice:
      global $user, $cookie, $sitename, $admin_file, $admin, $prefix, $db, $module_name, $currentlang, $NameOfTheme, $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4;
             ?>
    	<script type="text/javascript">
    	/* This script and many more are available free online at
    The JavaScript Source!! http://javascript.internet.com
    Created by: Jay Rumsey | http://www.nova.edu/~rumsey/ */
    function UpdateCost() {
      var sum = 0;
      var gn, elem;
      for (i=0; i<5; i++) {
        gn = 'amount_q'+i;
        elem = document.getElementById(gn);
        if (elem.checked == true) { sum += Number(elem.value); }
      }
      document.getElementById('totalcost').value = sum.toFixed(2);
    } 
    </script>
    		 <table align="center" border="0" cellSpacing="2" cellPadding="0" width="100%">
    		   <tr height="30">
    		     <td class="content" colspan="5"><?php echo ''._LN_SERVICE.''; ?></td>
    		   </tr>
    		   <tr align="center" height="30">
    		     <td class="bgbar" width="5%"><?php echo ''._LN_N.''; ?></td>
    		     <td class="bgbar" width="40%"><?php echo ''._LN_DESCRIPTION.''; ?></td>
    		     <td class="bgbar" width="10%"><?php echo ''._LN_TOTUNIT.''; ?></td>
    		     <td class="bgbar" width="35%"><?php echo ''._LN_TOTQUOTE.''; ?></td>
    		     <td class="bgbar" width="10%"><?php echo ''._LN_TOTALL.''; ?></td>
    		   </tr>
               <form method="post" action="<?php echo 'modules.php?name=Liste_Nozze&op=view_nozze&id_ln='.$id_ln.'&user_id='.$user_id.''; ?>">
               <?php
         while ($row2 = $db->sql_fetchrow($result2)) 
       	 	   {
    		   $id_s = $row2['id_s'];
    		   $idln_s = $row2['idln_s'];
    		   $description_s = $row2['description_s'];
    		   $date_s = $row2['date_s'];
    		   $amount_s = $row2['amount_s'];
    		   $minamount_s = $row2['minamount_s'];
    		if ($id_s == "") {$id_s="";} 
    		if ($description_s == "") {$description_s="";} 
    		if ($date == "") {$date='';} 
    		if ($amount_s == "") {$amount_s='';} 
    		   $amount_q = 0;
    		   $amount_q = $amount_s / $minamount_s;
    		   ?>
    		   <tr height="20">
    		     <td align="center" class="linebot"><span class="tiny"><?php echo ''.$id_s.''; ?></span></td>
    		     <td class="linebot"><span class="tiny"><?php echo ''.$description_s.''; ?></span></td>
    		     <td align="center" class="linebot"><span class="tiny"><?php echo ''.$amount_q.''; ?></span></td>
    		     <td class="linebot"><?php for ( $i=0; $i < $minamount_s; $i++ ) { ?><input class="styled" type="checkbox" id="amount_q[]" value="<?php echo ''.$amount_q.''; ?>" onclick="UpdateCost()" /><?php } ?></td>
    		     <td align="center" class="linebot"><span class="tiny"><?php echo ''.$amount_s.''; ?></span></td>
    		   </tr>
               <?php
     		   }
    		   ?>
    		   <tr height="30">
    		     <td align="right" colspan="4">Costo totale: </td>
    		     <td align="center"><input class="inputbox" type="text" id="totalcost" value="0" size="5" /></td>
    		   </tr>
    		   <tr height="30">
    		     <td colspan="3">
    <!--             <input type="hidden" name="op" value="quote_edit" />
    		     <input type="hidden" name="user_id" value="<?php echo ''.$user_id.''; ?>" />
    		     <input type="hidden" name="id_ln" value="<?php echo ''.$id_ln.''; ?>" /> -->
                 </td>
    		     <td colspan="2"><input class="button" type="submit" name="submit" value="<?php echo ''._LN_SAVE.''; ?>" /></td>
    		   </tr>
               </form>
    	       <?php
    quello che vorrei fare è selezionando delle quote tramite i checkbox avere il totale in tempo reale per poi tramite la submit portarlo in altro file e di conseguenza db

    Spero di essermi spiegato bene e di avere fortuna nelle risposte


    Ciao

  2. #2

    Re: Calcolo automatico con checkbox

    Magari invece di buttare tutto il codice sii n'attimino più dettagliato a parole e più sintetico per quanto riguarda il codice (riportando eventualmente solo le parti che servono alla spiegazione)... credo nessuno abbia la pazienza di leggersi tutto il codice per cercare di capire di cosa staiu parlando

    PS: se non scherzavi, sarebbe "non plus ultra" letteralmente "non più oltre" (in latino)... cioè "il top" scusa la pignoleria

  3. #3
    grazie per la correzione, ma
    n'attimino
    di errori di tanto in tanto ci stanno bene, ci fanno sentire + umani.

    A parte queste cose,
    ho postato tutto il codice, per rendere l'idea più facile da leggere e capire, non volevo e non voglio dare compiti a casa a nessuno.

    Ciao

  4. #4
    si, ma se spiegassi cosa fa il tuo codice uno non dovrebbe perdere tempo a comprenderlo da solo
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    ok scusate ma mi sembrava di averlo scritto sotto il codice

    quello che vorrei fare è selezionando delle quote tramite i checkbox avere il totale in tempo reale per poi tramite la submit portarlo in altro file e di conseguenza db
    e infatti non è molto chiaro, quindi riprovo,

    ho dei servizi tipo:
    volo aereo 1000 euro che suddivido in 10 quote da 100
    hotel 1000 euro che suddivido in 5 quote da 200
    escursioni 500 euro che suddivido in 5 quote da 100 etc

    mentre seleziono uno o + quote nella casella di testo vedo la somma totale dell'importo che il cliente dovrà pagare

    poi prendo questa variabile e la porto tramite il form nel db
    Quello dove non riesco è il calcolo.

    Spero di essere stato + chiaro questa volta e scusate per l'inconveniente

    Ciao

  6. #6
    il codice per il calcolo, essendo in javascript, riguarda la sezione script non php perché tutto comunque viene eseguito nel browser e con php non ha un granché a che fare
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    ho postato qui perchè non è il javascript che non va ma la parte in php ed esattamente

    codice:
    <td class="linebot"><?php for ( $i=0; $i < $minamount_s; $i++ ) { ?><input class="styled" type="checkbox" id="amount_q[]" value="<?php echo ''.$amount_q.''; ?>" onclick="UpdateCost()" /><?php } ?></td>
    è lui che non passa i valori a

    codice:
    <input class="inputbox" type="text" id="totalcost" value="0" size="5" />
    che faccio cambio sezione?

  8. #8
    penso che il problema riguardi js, ma detto questo, a quale scopo hai bisogno di farti passare il valore? quando viene premuto il submit ti basta fare un foreach su

    $_POST['amount_q']

    qualcosa tipo

    codice:
    $sum = 0;
    foreach($_POST['amount_q'] as $amount)
    {
      $sum += $amount;
    }
    
    $sum = sprintf('%0.2f', $sum);
    che oltre ad essere più sicuro (perché non riceve il valore elaborato via javascript) ti risolve il problema ... poi io fossi in te invece di estrarre i singoli valori mi farei passare gli id e la somma la farei tramite query in modo da stare ancora più tranquillo
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    Grazie per la risposta ma non ci ho capito niente.

    ti allego una immagine in modo che possa aiutarti e aiutarmi a capire come venirne a capo del mio problema.



    Come puoi vedere selezionando i checkbox vorrei visualizzare il totale poi seleziono il tipo di pagamento e dopo faccio la submit

    Grazie ancora

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2000
    residenza
    Edinburgh
    Messaggi
    401
    E' essenzialmente un problema di Javascript.

    Se per calcolare il nuovo totale non basta JS e devi usare PHP allora se non vuoi ricaricare la pagina dovrai fare una chiamata AJAX. Il PHP viene interpretato dal server che non sa nulla di quello che succede sul client a meno che non gli venga fatto un submit.

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.