2017-07-17 20 views
0

service_cost * service_daysの値を掛けたいですが、service_costとservice_daysは動的です。これは複数回繰り返すことがあります。その後、私はすべての乗算結果の合計を計算し、それを小計テキストボックスに割り当てたいと考えました。ダイナミックテキストボックスから値を掛け算して計算するにはどうすればよいですか?

<div class="form-group"> 
    <label for="place" class="col-sm-2 control-label">Services</label> 
    <div class="col-md-10" id="check" style="padding-left: 0px !important;"> 
     <?php 
      $sql = "SELECT * FROM service_ipd ORDER BY service_id ASC"; 
      $q = $pdo->query($sql); 
      while($row = $q->fetch(PDO::FETCH_ASSOC)) 
      { 
     ?> 
     <div class="col-sm-5" style="margin-bottom:10px;"> 
      <div class="input-group date"> 
       <div class="input-group-addon"> 
        <input type="checkbox" value="<?php echo $row['service_id']; ?>" name="service[]" id="service"> 
       </div> 
       <input type="place" class="form-control" name="" id="" placeholder="" value="<?php echo $row['service_name']; ?>" disabled="true"> 
      </div> 
     </div> 
     <div class="col-sm-2"> 
      <div class="input-group"> 
       <input type="text" class="form-control" name="service_cost[]" id="service_cost" value="<?php echo $row['service_cost']; ?>" placeholder="" readonly> 
      </div> 
     </div> 
     <div class="col-sm-2"> 
      <div class="input-group"> 
       <input type="text" class="form-control" name="service_days[]" id="service_days" placeholder=""> 
      </div> 
     </div> 
     <div class="clearfix"></div> 
     <?php } ?> 
    </div> 
</div> 
<input type="name" class="form-control" name="invoice_generation_date" id="sub_total" placeholder="Sub Total"> 

最適な解決策は何ですか?助けてください。あなたは、すべてのservice array

$total = 0; 
foreach($_POST['items'] as $item){ 
     $multiply = $item['service_day'] * $item['service_cost']; 
     $total += $multiply; 
} 
+0

をあなたはPHPやJavaScriptで値を計算したいですか? –

+0

@LoïcFaure-Lacroix:javascriptで、ランタイムを表示したい – swap

答えて

0

はこれを考えてみましょうID。私は、各入力IDにインデックスなどを追加します。 あなたはjQueryのを使用する場合は、このような何かを試すことができます。

$(document).ready(function() { 
    var total = 0; 
    $.each($('input[name=service_cost[]]'), function(k, cost){ 
     $.each($('input[name=service_days[]]'), function(k, day){ 
     total += $(cost).val() * $(day).val(); 
     }); 
    }); 
    $('#sub_total').val(total); 
}; 

それとも、PHPを使用することができますがaswell:

$sql = "SELECT * FROM service_ipd ORDER BY service_id ASC"; 
$q = $pdo->query($sql); 
$total = 0; 
while($row = $q->fetch(PDO::FETCH_ASSOC)){ 
    $total += $$row['service_cost'] * $row['service_day']; 
} 

<input type="name" class="form-control" name="invoice_generation_date" id="sub_total" value="<?= $total ?>" placeholder="Sub Total"> 
0

ファーストが含まれていarrayである、項目をループすることができますあなたが同じで複数の入力を作成するべきではありません、今

<input name='items[1][service_day]'> 
<input name='items[1][service_cost]'> 
<!-- and for second item: --> 
<input name='items[2][service_day]'> 
<input name='items[2][service_cost]'> 

関連する問題