Devo fare questo conto, in un form php:
materiale_1_qt x materiale_1_prezzo = materiale_1_prezzo_tot
materiale_2_qt x materiale_2_prezzo = materiale_2_prezzo_tot
materiale_3_qt x materiale_3_prezzo = materiale_3_prezzo_tot
costo_materiali=materiale_1_prezzo_tot + materiale_2_prezzo_tot + materiale_3_prezzo_tot
dove
- materiale_1_qt, 2, 3 ... sono delle select con numeri da 1 a 100
- materiale_1_prezzo , 2, 3 ... sono degli input con valuta decimale
- materiale_1_prezzo_tot, 2, 3 .. è un campo nascosto che serve per fare i conti
- costo_materiali è un input con valuta decimale
il tutto, quando apro il form, in modifica, carica i valori da database, ma posso cambiarli ed aggiornare il tutto. Vorrei però che si aggiornassero man mano che vengono ridigitati
per la select ho messo questa funzione:
<select name=materiale_1_qt onChange="MM_changeProp('materiale_1_prezzo_tot',' ','value', this.options[this.selectedIndex].value*<?=$materiale_1_prezzo;?> ,'input');">
<option value=0>... </option>
<?
for ($m=1; $m<101; $m++)
{
echo "<option value=$m";
if ($m=="$materiale_1_qt") echo " selected";
echo">$m</option>";
}
?>
</select>
e di fatti il materiale_1_prezzo_tot viene aggiornato, ma non riesco a far aggiornare il costo_materiali, facendo diverse prove.
costo_materiali lo faccio calcolare nella pagina, da una funzioncina:
function calcola_materiali ($m1, $m2, $m3, $m4)
{
$prezzo_materiali=$m1+$m2+$m3+$m4;
$prezzo_materiali=number_format ($prezzo_materiali, 2);
return $prezzo_materiali;
}
così ho pensato che poteva essere richiamata dalla select ma non produce risultato.
avevo fatto così:
<select name=materiale_1_qt onChange="MM_changeProp('materiale_1_prezzo_tot',' ','value', this.options[this.selectedIndex].value*<?=$materiale_1_prezzo;?> ,'input');
MM_changeProp('costo_materiali','','value', '<? costo_materiali=calcola_materiali ($materiale_1_prezzo_tot, materiale_2_prezzo_tot, materiale_3_prezzo_tot, materiale_4_prezzo_tot); ?>' ,'input');">
<option value=0>... </option>
<?
for ($m=1; $m<101; $m++)
{
echo "<option value=$m";
if ($m=="$materiale_1_qt") echo " selected";
echo">$m</option>";
}
?>
</select>
come faccio per aggiornare tutti i campi prima di inviare il form?