• User Newbie

    moltiplicare due elementi di due array

    [html]
    <form name="modulo" method="post" action="prova2.php">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td> prezzo
    <input name ="prezzo[]" type ="text" value="4" size="8" /></td>
    <td> quantita<input name ="quantita[]" type ="text" value="1" size="8" /></td>
    <td> </td>
    </tr>
    <tr>
    <td>prezzo
    <input name ="prezzo[]" type ="text" value="5" size="8" /></td>
    <td>quantita<input name ="quantita[]" type ="text" value="2" size="8" /></td>
    <td> </td>
    </tr>
    <tr>
    <td>prezzo
    <input name ="prezzo[]" type ="text" value="6" size="8" /></td>
    <td>quantita<input name ="quantita[]" type ="text" value="1" size="8" /></td>
    <td> </td>
    </tr>
    <tr>
    <td width="9%">totale
    <input type ="text" size="8" name = "j" readonly="readonly" /> </td>
    <td width="37%"><input type="button" value="Calcola" onclick="esegui()" /></td>
    <td width="37%"> </td>
    </tr>
    </table>
    </form>[/html]

    con questo semplice script:

     
    <script LANGUAGE="JavaScript" TYPE="text/javascript">
    function esegui () 
    {
    var els = document.forms["modulo"].elements["prezzo[]"],
    len = els.length,
    somma = 0;
    for ( var i = 0; i < len; i++ ){
    somma += parseFloat(els*.value)||0;
    }
    document.modulo.j.value= parseFloat(somma); 
    }
    </SCRIPT>
    
    

    riesco a fare la somma dei valore delle text "prezzo". Dovrei implemantare la somma moltiplicando ogni volta il prezzo per la rispettiva quantita. Per capire in questo caso il totale deve essere 20.

    Spero che questa volta qualcuno possa aiutarmi :gthi:


  • User

    Non funziona modificando lo script così

    
    function esegui () 
    {
        var els = document.forms["modulo"].elements["prezzo[]"];
        var prz = document.forms["modulo"].elements["quantita[]"];
        len = els.length;
        somma = 0;
    
        for ( var i = 0; i < len; i++ ){
            somma += (parseFloat(els*.value) * parseFloat(prz*.value))||0;
        }
        document.modulo.j.value= parseFloat(somma); 
    }
    
    ```?
    Forse bisognerebbe però anche controllare che il prezzo e la quantità siano maggiori di 0.

  • User

    Ops... ho visto che hai già risolto nell'altro post. Forse dovrei rispondere prima ai più recenti. 😄


  • User Newbie

    grazie mille 😉