2017-07-17 7 views
0

Ich möchte Werte von service_cost * service_days multiplizieren, aber service_cost und service_days sind dynamisch, was mehrmals wiederholt werden kann. Und danach wollte ich die Summe aller Multiplikationsergebnisse berechnen und sie dem Zwischensummen-Textfeld zuweisen.Wie kann ich Werte aus dynamischen Textfeldern multiplizieren und berechnen?

<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"> 

Was kann die beste Lösung sein? Bitte helfen Sie.

+0

Sie möchten die Werte in PHP oder JavaScript berechnen? –

+0

@ LoïcFaure-Lacroix: in Javascript wollte ich es Laufzeit anzeigen – swap

Antwort

0

Betrachten Sie dieses:

<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]'> 

Jetzt können Sie Schleife über die Elemente, die ein array ist die service array

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

Zunächst einmal enthält, sollten Sie nicht mehrere Eingänge mit dem gleichen erstellen ICH WÜRDE. Ich würde jeder Eingabe-ID einen Index oder etwas anderes hinzufügen. Wenn Sie jQuery verwenden, können Sie mit so etwas wie dies versuchen:

$(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); 
}; 

Oder können Sie PHP als gut verwenden:

$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"> 
Verwandte Themen