[Javascript] aggiungere righe con select da database e calcolo sconto in automatico

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Salve, sto cercando di creare una pagina web per la realizzazione di fatture che preveda l'inserimento di varie righe dove è possibile selezionare tramite un campo select delle attività prese dal database e il relativo importo. Quest'ultimo deve essere editabile e devo poter calcolare uno sconto e ottenere il suo importo netto. Vorrei inoltre poter aggiungere e eliminare queste righe, e poi ottenere il totale di tutti gli importi netti selezionati. Non so se sono riuscito a spiegarmi, quindi lascio un link di quello che ho fatto:
http://www.olgiatapark.com/gestionale/forms/test.php

Sono riuscito, tramite uno script a risolvere praticamente la prima parte del problema, cioè il calcolo dello sconto dopo l'estrazione dell'importo in base all'opzione selezionata, e attraverso un altro script ho la possibilità di aggiungere ed eliminare le righe, ma nei cloni che ottengo non sono riuscito ad ottenere lo stesso risultato.
Posto il codice:
Codice:
<script type="text/javascript">
$(function(){
var removeLink = ' <a href="#" onclick="$(this).parent().slideUp(function(){ $(this).remove() }); return false">elimina</a>';
 
$('a.add').relCopy({ append: removeLink});
});
</script>

<script>
var cont = 0;
    
function selezionaImporto(sel)
{   
    var id = sel.options[sel.selectedIndex].value;
    
    document.form.selectValue.value = id;
    
    <?php
    $quary = "SELECT id, importo FROM $tablePrestazioni";
    if ($result = mysqli_query($mysqli_connect, $quary))
    {
        while ($row = mysqli_fetch_array($result))
        {
            ?>
            importoDB = "<?php print $row[0] ?>";
            
            if (importoDB == id)
            {
              document.form.importo.value = '<?php echo $row[1]?>';
            }           
            <?php
        }       
    }
    ?>
    
    document.form.conta.value = cont;
}

function calcolaSconto()
{
    var percentuale = document.form.sconto.value;
    var importo = document.form.importo.value;
    var totSconto = (percentuale * importo) / 100;
    var totImporto = importo - totSconto;
    
    document.form.totale.value = totImporto;
}

</script>
HTML:
<form name="form">
<div class="clone">
<select name="prestazione" onchange="selezionaImporto(this)" onmousemove="calcolaSconto()">
    <option value="" selected> Scegli
    <option value="1"> Opzione 1
    <option value="2"> Opzione 2
    <option value="3"> Opzione 3
</select>

<label>id:</label><input type='text' name='selectValue'>

<label>importo lordo:</label><input type='text' name='importo'>
<label>percentuale sconto:</label><input type='text' name='sconto' onmousemove="calcolaSconto()" onfocus="calcolaSconto()" onchange="selezionaImporto(this)">
<label>importo netto:</label><input type='text' name='totale' onfocus="calcolaSconto()">
<a href="#" class="add" rel=".clone" onClick="aggiungi();">aggiungi<br></a>
</div>

</form>
Molto probabilmente il problema sta nel 'name' che forse dovrebbe cambiare ad ogni aggiunta, ma non saprei come risolvere.

Ovviamente se qualcuno ha una soluzione diversa accetto ben volentieri i consigli.

Grazie come al solito per l'aiuto