так что я новичок в codeigniter и веб-разработке в целом, но можно ли подсчитать 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
Не могли бы вы проверить мой ответ?
@HastaDhana, извини, я не видел твоего






Попробуй это:
$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');
Надеюсь, поможет
может показать мне, как суммировать таблицу соединений? как код, который я только что добавил
Это код 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>
если я введу значение налога 10%, и он выведет значение subtotal*tax
ты понял или нет
вы можете посчитать всю сумму с помощью самого php
set variable $subtotal with zero, and add $subtotal in every loop
<?php
$subtotal = 0;
foreach ($dataTabel as $kiki) : ?>
<tr class = "table-row">
....
</tr> <?php $subtotal = $subtotal+$kiki["qty_op"]*$kiki["price"]; endforeach;?>
Надеюсь, ты понял.
Вы можете получить промежуточный итог с помощью 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" входу Промежуточный итог? также вы получаете какое-либо консольное сообщение? Кроме того, не могли бы вы поделиться кодом ввода промежуточной суммы, скидки и налога?
да, я присвоил этому свой промежуточный идентификатор, да, конечно, я только что отредактировал свой вопрос
Я вижу, вы переименовали calculateSubTotal() в calculatedSubTotal() в своем коде, не могли бы вы также показать код javascript?
javascript, который я пробую, это тот, который ты пишешь
нет ошибки, только нет значения, которое появляется
Значит, значение Промежуточный итог (первый вход) пусто?
да ввод subTotal пуст
Попробуйте это на консоли: let y = 0.0;$('.calc').each(function(){y += parseInt($(this).text())});console.info(y);, что он возвращает?
не могли бы вы объяснить мне, как это сделать, я до сих пор не очень понимаю javascript
Откройте Dev Tools, нажав: Ctrl+Shift+i ИЛИ F12, затем вставьте эти коды на вкладку Консоль.
Uncaught TypeError: Cannot read property 'each' of null at <anonymous>:1:23 он возвращает эту ошибку
обновите страницу и попробуйте заменить знак $ на jQuery в консоли: let y = 0.0;jQuery('.calc').each(function(){y += parseInt(jQuery(this).text())});console.info(y);
да, это показывает суммарное значение subTotal из таблицы
если я использую $(function () { let sum = 0.0; $('.calc').each(function() { sum += parseInt($(this).text()); }); $("#subTotal").val(sum); }); в консоли, он возвращает это k.fn.init [document], и значение появляется в поле ввода
это работает! спасибо, это потому что я не установил jquery?
пожалуйста! может быть, это потому, что ваша библиотека использует jQuery.noConflict(), что для использования jquery вам нужно заменить $ на jQuery, более
вы можете использовать javascript для расчета суммы или хотите из самого запроса