Advertisement
cdsatrian

Dynamic Sum Row

Aug 20th, 2013
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.58 KB | None | 0 0
  1. <?php
  2. $row_num=isset($_POST['row_num'])?$_POST['row_num']:'';
  3. ?>
  4. <!DOCTYPE html>
  5. <html>
  6.   <head>
  7.     <title>Dynamic MultiRow</title>
  8.     <style>
  9.       * {font-family:verdana,arial,sans-serif;font-size:12px;}
  10.       .number {text-align:right}
  11.       .total {text-align:right;font-weight:bold;background-color:#ffc;border:solid 1px #999;}
  12.       .grand_total {text-align:right;font-weight:bold;}
  13.       .config_box {background-color:#eef;width:480px;padding:5px;margin:5px;}
  14.       .formula_box {display:<?php echo empty($row_num)?'none':'block';?>;
  15.                     background-color:#eee;width:480px;padding:5px;margin:5px;}
  16.     </style>
  17.   </head>
  18.   <body>
  19.     <div class='container'>
  20.       <div class='config_box'>
  21.         <form method='post'>
  22.           <label>Jumlah Baris</label>
  23.           <input type='text' name='row_num' class='number' value='<?php echo $row_num;?>' />
  24.           <input type='submit'/>
  25.         </form>
  26.       </div>
  27.       <div class='formula_box'>
  28.         <table>
  29.           <tr>
  30.             <th>Nilai 1</th>
  31.             <th>Nilai 2</th>
  32.             <th>Total</th>
  33.           </tr>
  34.           <?php
  35.           if(!empty($row_num))
  36.           {
  37.             for($i=0;$i<$row_num;++$i)
  38.             {
  39.               echo"
  40.          <tr>
  41.            <td><input type='text' name='nilai1[]' class='number' onChange='sum()'/></td>
  42.            <td><input type='text' name='nilai2[]' class='number' onChange='sum()' /></td>
  43.            <td><input type='text' name='total[]' class='total' readonly='readonly' /></td>
  44.          </tr>\n";
  45.             }
  46.           }  
  47.           ?>
  48.           <tr>
  49.             <td colspan='2' class='grand_total'>Grand Total</td>
  50.             <td><input type='text' id='grand_total' class='total' readonly='readonly' /></td>
  51.           </tr>        
  52.         </table>
  53.       </div>
  54.     </div>
  55.     <script>
  56.       function sum(){
  57.         var nilai1=document.getElementsByName('nilai1[]');
  58.         var nilai2=document.getElementsByName('nilai2[]');
  59.         var total=document.getElementsByName('total[]');
  60.         var grandtotal=0;
  61.         var dummy=0;
  62.         for(i=0;i<nilai1.length;i++)
  63.         {
  64.           dummy=isNaN(parseFloat(nilai1[i].value))?0:parseFloat(nilai1[i].value);
  65.           dummy+=isNaN(parseFloat(nilai2[i].value))?0:parseFloat(nilai2[i].value);
  66.           total[i].setAttribute('value',dummy==0?'':dummy);
  67.           grandtotal+=isNaN(parseFloat(total[i].value))?0:parseFloat(total[i].value);
  68.         }
  69.         document.getElementById('grand_total').setAttribute('value',grandtotal);
  70.       }
  71.     </script>
  72.   </body>
  73. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement