如何使用数据库中的数据计算 Total、Tax
Posted
技术标签:
【中文标题】如何使用数据库中的数据计算 Total、Tax【英文标题】:How to count Total, Tax using data from database 【发布时间】:2019-07-29 03:51:18 【问题描述】:所以我在 codeigniter 和一般的 web 开发中有点新,但是可以计算 Sub Total 和 Tax,自动将该值输入到 codeigniter 的某种输入框中吗?
例如:
我有一个模型可以加入一些列并将数据显示到一个表中表模型.php
public function getPurchaseOrder()
$query =$this->db->query('SELECT dkmno, kodeprod,kodebarang_op,qty_op,unit_op,price,catatan FROM order_product JOIN barang_dkm ON order_product.kodebarang_op = barang_dkm.kodebarang');
return $query->result_array();
表格视图.php
<table class="table table-fixed table-bordered table-hover" style="width:100%;" id="tebal">
<thead>
<tr>
<th scope="col">DKM No </th>
<th scope="col">Kode Produksi </th>
<th scope="col">Kode Barang </th>
<th scope="col">Deskripsi </th>
<th scope="col">Jumlah/Quantity </th>
<th scope="col">Unit </th>
<th scope="col">Unit Price </th>
<th scope="col">Sub Total </th>
</tr>
</thead>
<tbody>
<?php foreach ($dataTabel as $kiki) : ?>
<tr class="table-row">
<td><?php echo $kiki["dkmno"]; ?></td>
<td><?php echo $kiki["kodeprod"]; ?></td>
<td><?php echo $kiki["kodebarang_op"]; ?></td>
<td><?php echo $kiki["catatan"]; ?></td>
<td><?php echo $kiki["qty_op"]; ?></td>
<td><?php echo $kiki["unit_op"]; ?></td>
<td><?php echo $kiki["price"]; ?></td>
<td class="calc"><?php $a=$kiki["qty_op"]*$kiki["price"]; echo $a ?></td>
</tr>
<?php endforeach;?>
</tbody>
</table>
我想从上表中计算小计并在文本框或输入框中显示答案
如果您想知道小计、折扣和税码
<div class="row mt-5">
<div class="col-sm" id="kontol">
<div class="form-group">
<div class="row">
<div class="col-sm-3">
<label for="SubTotal" class="control-label">Sub Total : </label>
</div>
<div class="col-sm-9">
<input type="number" id="subTotal" name="SubTotal" value="" style="text-align: right;" class="form-control" disabled>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-lg-3">
<label for="Discount" class="label-control" id="Discount">Discount : </label>
</div>
<div class="col-lg-3">
<div class="input-group">
<input type="number" name="Discount" class="form-control" id="inputDiscount" value="" min="0" max="100" onchange="calculatedSubTotal()"><span class="input-group-addon">%</span>
</div>
</div>
<div class="col-lg-6">
<input type="number" name="SubTotalDiscount" value="" style="text-align: right;" class="form-control" id="subTotalDiscount" disabled>
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-lg-3">
<label for="Tax" class="label-control">Tax : </label>
</div>
<div class="col-lg-3">
<div class="input-group">
<input type="number" name="Tax" value="" min="0" max="100" class="form-control" id="inputTax" onchange="calculatedSubTotal()"><span class="input-group-addon">%</span>
</div>
</div>
<div class="col-lg-6">
<input type="number" name="SubTotalTax" style="text-align: right;" class="form-control" id="subTotalTax" value="" disabled>
</div>
</div>
</div>
我曾尝试查看提出相同问题的人,但我仍然需要详细了解 model.php、controller.php、view.php、script.js 的工作原理,如果您需要更多详细信息,请点击此处的链接我已经制作的用户界面:https://i.imgur.com/LSkrnMH.png
【问题讨论】:
你可以使用javascript来计算总数或者你想要的查询本身 你能检查我的答案吗? @HastaDhana 抱歉我没看到你的 【参考方案1】:您可以使用 CodeIgniter 获得小计,但您必须使用 javascript 来计算税款,因为它涉及用户交互。
例如,您有这样的小计输入:
<div class="form-group">
<label class="col-sm-3 control-label" for="SubTotal">Sub Total</label>
<div class="col-sm-9">
<input type="number" name="SubTotal" id="subTotal" class="form-control" value="" title="Sub Total" disabled><br/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="Discount">Discount</label>
<div class="col-sm-9">
<div class="col-sm-6">
<div class="input-group input-group-md">
<input type="number" name="Discount" id="inputDiscount" class="form-control" value="" title="Discount" min="0" max="100" onchange="calculateSubTotal()"><span class="input-group-addon">%</span>
</div>
</div>
<div class="col-sm-6">
<input type="number" name="SubTotalDiscount" id="subTotalDiscount" class="form-control" value="" title="Subtotal After Discount" disabled><br/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="Tax">Tax</label>
<div class="col-sm-9">
<div class="col-sm-6">
<div class="input-group input-group-md">
<input type="number" name="Tax" id="inputTax" class="form-control" value="" title="Tax" min="0" max="100" onchange="calculateSubTotal()"><span class="input-group-addon">%</span>
</div>
</div>
<div class="col-sm-6">
<input type="number" name="SubTotalTax" id="subTotalTax" class="form-control" value="" title="Subtotal After Tax" disabled><br/>
</div>
</div>
</div>
然后您可以设置小计值并计算折扣后和税后的小计值,如下所示:
<script>
jQuery(function ()
let sum = 0.0;
jQuery('.calc').each(function()
sum += parseInt(jQuery(this).text());
);
jQuery("#subTotal").val(sum);
);
function calculateSubTotal()
let subtotal = jQuery("#subTotal").val();
jQuery("#subTotalDiscount").val(subtotal - (Math.round((jQuery("#inputDiscount").val() / 100) * subtotal)));
let subtotal_discount = jQuery("#subTotalDiscount").val();
jQuery("#subTotalTax").val(+subtotal_discount + (Math.round((jQuery("#inputTax").val() / 100) * subtotal_discount)));
</script>
这将使用 javascript 设置所有小计。
【讨论】:
您是否将id="subTotal"
分配给Sub Total 输入?您还收到任何控制台消息吗?另外,你能分享一下小计、折扣和税收输入代码吗?
是的,我确实分配了我的小计 ID,是的,我刚刚编辑了我的问题
我看到您已将代码中的calculateSubTotal()
重命名为calculatedSubTotal()
,您能否显示javascript 代码?
我尝试的javascript是你写的
没有错误,只是没有显示值【参考方案2】:
试试这个:
$this->db->select_sum('your_column_to_calculate');
$this->db->select('your_column_to_calculate');
$this->db->from('price');
$this->db->get();
或者像这样:
query = $this->db->query('SELECT sum(your_column_to_calculate) FROM price');
希望对你有帮助
【讨论】:
可以告诉我如何对连接表求和吗?就像我刚刚添加的代码【参考方案3】:这是javascript代码,计算唯一的计算行并将结果显示在小计文本框中,它会自动加载:
<script>
$(document).ready(function()
var hh2 = 0;
$('#tebal > tbody > tr').each(function()
var price = $(this).find('.calc').val();
hh2 += parseFloat(price);
);
$('#SubTotal').val(hh2);
);
</script>
【讨论】:
如果我输入tax10%
的值,它会输出subtotal*tax
的值
你收到了吗【参考方案4】:
你可以用php本身计算所有的总和
将变量 $subtotal 设置为零,并在每个循环中添加 $subtotal
<?php
$subtotal = 0;
foreach ($dataTabel as $kiki) : ?>
<tr class="table-row">
....
</tr> <?php $subtotal = $subtotal+$kiki["qty_op"]*$kiki["price"]; endforeach;?>
希望你能明白。
【讨论】:
以上是关于如何使用数据库中的数据计算 Total、Tax的主要内容,如果未能解决你的问题,请参考以下文章
如何将结果“TOTAL”、“USER”和类型作为数据库中的值?