不同价格的MySQL数据显示JavaScript
我有以下与简单销售管理系统相关的表格 储存物品 存储\更新\库存 门店\更新\库存\详细信息 + 我尝试使用商品名称、数量和单价进行销售 我的名为Issue.php的控制器也包含以下行不同价格的MySQL数据显示JavaScript,javascript,mysql,codeigniter,Javascript,Mysql,Codeigniter,我有以下与简单销售管理系统相关的表格 储存物品 存储\更新\库存 门店\更新\库存\详细信息 + 我尝试使用商品名称、数量和单价进行销售 我的名为Issue.php的控制器也包含以下行 $this->data['products'] = $this->Item_Model->getExistProducts(); Item_模型中的相关功能如下 public function isExistProduct($q) { if (!empty($q)) {
$this->data['products'] = $this->Item_Model->getExistProducts();
Item_模型中的相关功能如下
public function isExistProduct($q)
{
if (!empty($q)) {
$this->db->select("store_item.*,store_update_stock.*,sum(qty) as qty, store_update_stock_details.unit_price");
$this->db->from('store_update_stock_details');
$this->db->join('store_update_stock', 'store_update_stock_details.update_stock_id=store_update_stock.update_stock_id');
$this->db->join('store_item', 'store_update_stock_details.item=store_item.item_id', 'right');
$this->db->where("store_item.item_id= $q");
$this->db->group_by('store_item.item_id, store_update_stock_details.unit_price');
$q1 = $this->db->get();
if ($q1->num_rows() > 0) {
return $q1->result_array();
}
return 0;
}
}
名为addIssue.php的视图包括以下JavaScript代码和HTML代码
<script type="text/javascript">
$(document).on("change", "#item", function () {
// console.log($('#item').val());
$("#salesList").show();
$.ajax({
'url': '<?=site_url("issue/isExistProduct/?q=")?>' + $('#item').val(),
'method': 'GET',
'success': function (data) {
var jData = JSON.parse(data);
if (jData.status == true) {
//console.log(jData);
$('#request_table').append('<tr>' +
'<td ><span id="product" >' + jData.data[0].item_name + '</span>' +
'<input type="hidden" id="item_id[]" name="item_id[]" value="' + jData.data[0].item_id + '">' +
'</td>' +
'<td class="text-center">' + jData.data[0].qty + '</td>' +
'<td class="text-center"><input class="form-control text-center rquantity" data-qty-bal="' + jData.data[0].qty + '" autofocus required type="number" step="any" id="qty[]" name="qty[]" ></td>' +
'<td class="text-center"><input class="form-control text-right" autofocus required type="number" step="any" id="sales_price[]" name="sales_price[]" value="' + jData.data[0].unit_price + '"></td>' +
'<td class="text-center"><input class="form-control text-right" autofocus type="number" step="any" id="discount_price[]" name="discount_price[]" ></td>' +
'<td class="text-center" ><i class="fa fa-remove remove" style="cursor: pointer"></i></td>' +
'</tr>');
}
},
'error': function () {
}
});
});
$(document).on("click", ".remove", function () {
$(this).closest('tr').remove();
});
var old_row_qty;
$(document).on("focus", '.rquantity', function () {
old_row_qty = $(this).val();
}).on("change", '.rquantity', function () {
var row = $(this).closest('tr');
if ($(this).val() > $(this).data('qty-bal')) {
$(row).addClass('danger');
$('#add_sale').attr('disabled', true);
} else {
$(row).removeClass('danger');
$('#add_sale').attr('disabled', false);
}
var amount = 0, subTotal = 0;
$('#request_table >tbody').find('tr').each(function () {
var rate = parseFloat($(this).find('td:eq(2) > .rquantity').val());
// $(this).find('.ssubtotal').text(formatNumber(rate));
amount += rate;
// subTotal += getNumber($(this).find('td:eq(5)').text());
});
$('#request_table >tfoot>tr').find('th:eq(1)').text(amount);
// $('#payTable >tfoot>tr').find('th:eq(2)').text(formatNumber(subTotal));
});
</script>
<script type="text/javascript">
$(document).ready(function () {
$("#salesList").hide();
var oTable = $('#ExData').dataTable({
"aaSorting": [[0, "asc"]],
"aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "ALL"]],
"iDisplayLength": 10,
'bProcessing': true, 'bServerSide': true,
'sAjaxSource': '<?= base_url() . "issue/getIssue" ?>',
'fnServerData': function (sSource, aoData, fnCallback) {
aoData.push({
"name": "type",
"value": "1 "
});
$.ajax({'dataType': 'json', 'type': 'POST', 'url': sSource, 'data': aoData, 'success': fnCallback});
},
'fnRowCallback': function (nRow, aData, iDisplayIndex) {
},
"aoColumns": [{'sName': 'invoice_no'}, {'sName': 'sales_date'}, {'sName': 'rep'}, {'sName': 'dealer_code'}, {'sName': 'dealer_name'}, {'mRender':formatMoney}, {'mRender':formatMoney}, {'mRender': pay_status}, null],
"fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) {
}
});
});
</script>
<div class="box box-info">
<div class="box-body" style="display: block">
<form action="<?= site_url('issue/addIssue') ?>" method="post">
<div class="row">
<div class="col-md-3">
<div class="form-group"><label>Sales Date</label>
<div class="input-group">
<span class="input-group-addon">
<i class="glyphicon glyphicon-calendar"></i>
</span>
<input type="text" name="sales_date" id="sales_date" class="form-control datepicker"
style="cursor: pointer"
value="<?= date('Y-m-d') ?>" readonly>
</div>
</div>
</div>
<div class="col-md-3">
<div class="form-group"><label>Dealer</label>
<select name="dealer" id="dealer" class="form-control select2" required>
<option value="">Select Dealer</option>
<?php
if (!empty($dealer)) {
foreach ($dealer as $row) {
?>
<option value="<?= $row->dealer_id ?>"><?= $row->dealer_code . " - " . $row->dealer_name ?></option>
<?php
}
}
?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group"><label>Rep Code</label>
<select name="rep" id="rep" class="form-control select2" required>
<option value="">Select Rep</option>
<?php
if (!empty($rep)) {
foreach ($rep as $row) {
?>
<option value="<?= $row->rep_id ?>"><?= $row->rep_name ?></option>
<?php
}
}
?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group"><label>Invoice No</label>
<input type="text" name="invoice_no" id="invoice_no" class="form-control"
value="<?= $autoInv ?>">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group"><label>Select Item</label>
<select name="item" id="item" class="form-control select2" required>
<option value="">Select Item</option>
<?php
if (!empty($products)) {
foreach ($products as $row) {
?>
<option value="<?= $row->item_id ?>"><?= $row->item_name ?></option>
<?php
}
}
?>
</select>
</div>
</div>
</div>
<!--table-->
<div id="salesList">
<div class="col-md-12 column">
<div class="col-md-12">
<div class="control-group table-group">
<label class="table-label">Sale Items *</label>
<div class="controls table-controls">
<table id="request_table" width="100%"
class="table items table-striped table-bordered table-condensed table-hover">
<thead>
<tr style="background-color: #3c8dbc;color: #ffffff;">
<th class="col-md-3">Item Name</th>
<th class="text-center col-md-2">Available Qty</th>
<th class="text-center col-md-2">Issue Qty</th>
<th class="text-center col-md-2">Unit Price</th>
<th class="text-center col-md-2">Discount</th>
</th>
<th class="col-md-1" style="width: 30px !important; text-align: center;">
<i class="fa fa-trash-o"
style="opacity:0.5; filter:alpha(opacity=50);"></i>
</th>
</tr>
</thead>
<tbody></tbody>
<tfoot>
<tr id="tfoot" class="tfoot active">
<th colspan="2">Total</th>
<th class="text-center">0</th>
<th class="text-right"></th>
<th class="text-right"></th>
<th class="text-center"><i class="fa fa-trash-o"
style="opacity:0.5; filter:alpha(opacity=50);"></i>
</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8"></div>
<div class="col-md-4">
<button type="submit" id="add_sale" class="btn btn-primary btn-block"><i
class="fa fa-shopping-cart" aria-hidden="true"></i> Add Sale
</button>
</div>
</div>
</div>
</form>
<!--end of table-->
</div>
$(文档)。关于(“更改”,“项目”,函数(){
//log($('#item').val());
$(“#销售列表”).show();
$.ajax({
'url':''+$('#项').val(),
'方法':'获取',
“成功”:函数(数据){
var jData=JSON.parse(数据);
if(jData.status==true){
//console.log(jData);
$('request_table')。追加('+
''+jData.data[0].项目名称+''+
'' +
'' +
''+jData.data[0].数量+''+
'' +
'' +
'' +
'' +
'');
}
},
“错误”:函数(){
}
});
});
$(文档)。在(“单击”、“.remove”上,函数(){
$(this).closest('tr').remove();
});
var旧行数量;
$(document).on(“focus”、'.rquantity',函数(){
旧行数量=$(this.val();
}).on(“更改”、.rquantity',函数(){
var行=$(this).closest('tr');
if($(this.val()>$(this.data('qty-bal')){
$(行).addClass(“危险”);
$('add#u sale').attr('disabled',true);
}否则{
$(行)。removeClass('danger');
$('add#u sale').attr('disabled',false);
}
风险值金额=0,小计=0;
$('#request_table>tbody')。查找('tr')。每个(函数(){
var rate=parseFloat($(this).find('td:eq(2)>.rquantity').val());
//$(this.find('.ssubtotal').text(formatNumber(rate));
金额+=费率;
//小计+=getNumber($(this).find('td:eq(5)')).text();
});
$('request#u table>tfoot>tr').find('th:eq(1)).text(amount);
//$('#payTable>tfoot>tr')。查找('th:eq(2)')。文本(formatNumber(小计));
});
$(文档).ready(函数(){
$(“#salesList”).hide();
变量oTable=$('#ExData').dataTable({
“aaSorting”:[[0,“asc”]],
“阿伦提努”:[[10,25,50,100,-1],[10,25,50,100,“全部”],
“iDisplayLength”:10,
'bProcessing':true,'bServerSide':true,
“sAjaxSource”:“,
“fnServerData”:函数(sSource、aoData、fnServerData回调){
aoData.push({
“名称”:“类型”,
“值”:“1”
});
$.ajax({'dataType':'json','type':'POST','url':sSource,'data':aoData,'success':fnCallback});
},
“fnRowCallback”:函数(nRow、aData、iDisplayIndex){
},
“aoColumns:[{'sName':'invoice_no'},{'sName':'sales_date'},{'sName':'rep'},{'sName':'dealer_code'},{'sName':'dealer_name'},{'mRender':formatMoney},{'mRender':formatMoney},{'mRender':pay_status},null],
“fnFooterCallback”:函数(nRow、aaData、iStart、iEnd、aiDisplay){
}
});
});
$('request#u table')。追加('+
''+jData.data[0].项目名称+''+
'' +
'' +
''+jData.data[0].数量+''+
'' +
'' +
'' +
'
' +
'');
因为上面的函数只将第一条记录追加到表中,所以需要使用foreach语句追加整个记录
$this->data['products'] = $this->Item_Model->getExistProducts();
public function isExistProduct($q)
{
if (!empty($q)) {
$this->db->select("store_item.*,store_update_stock.*,sum(qty) as qty, store_update_stock_details.unit_price");
$this->db->from('store_update_stock_details');
$this->db->join('store_update_stock', 'store_update_stock_details.update_stock_id=store_update_stock.update_stock_id');
$this->db->join('store_item', 'store_update_stock_details.item=store_item.item_id', 'right');
$this->db->where("store_item.item_id= $q");
$this->db->group_by('store_item.item_id, store_update_stock_details.unit_price');
$q1 = $this->db->get();
if ($q1->num_rows() > 0) {
return $q1->result_array();
}
return 0;
}
}
<script type="text/javascript">
$(document).on("change", "#item", function () {
// console.log($('#item').val());
$("#salesList").show();
$.ajax({
'url': '<?=site_url("issue/isExistProduct/?q=")?>' + $('#item').val(),
'method': 'GET',
'success': function (data) {
var jData = JSON.parse(data);
if (jData.status == true) {
//console.log(jData);
$('#request_table').append('<tr>' +
'<td ><span id="product" >' + jData.data[0].item_name + '</span>' +
'<input type="hidden" id="item_id[]" name="item_id[]" value="' + jData.data[0].item_id + '">' +
'</td>' +
'<td class="text-center">' + jData.data[0].qty + '</td>' +
'<td class="text-center"><input class="form-control text-center rquantity" data-qty-bal="' + jData.data[0].qty + '" autofocus required type="number" step="any" id="qty[]" name="qty[]" ></td>' +
'<td class="text-center"><input class="form-control text-right" autofocus required type="number" step="any" id="sales_price[]" name="sales_price[]" value="' + jData.data[0].unit_price + '"></td>' +
'<td class="text-center"><input class="form-control text-right" autofocus type="number" step="any" id="discount_price[]" name="discount_price[]" ></td>' +
'<td class="text-center" ><i class="fa fa-remove remove" style="cursor: pointer"></i></td>' +
'</tr>');
}
},
'error': function () {
}
});
});
$(document).on("click", ".remove", function () {
$(this).closest('tr').remove();
});
var old_row_qty;
$(document).on("focus", '.rquantity', function () {
old_row_qty = $(this).val();
}).on("change", '.rquantity', function () {
var row = $(this).closest('tr');
if ($(this).val() > $(this).data('qty-bal')) {
$(row).addClass('danger');
$('#add_sale').attr('disabled', true);
} else {
$(row).removeClass('danger');
$('#add_sale').attr('disabled', false);
}
var amount = 0, subTotal = 0;
$('#request_table >tbody').find('tr').each(function () {
var rate = parseFloat($(this).find('td:eq(2) > .rquantity').val());
// $(this).find('.ssubtotal').text(formatNumber(rate));
amount += rate;
// subTotal += getNumber($(this).find('td:eq(5)').text());
});
$('#request_table >tfoot>tr').find('th:eq(1)').text(amount);
// $('#payTable >tfoot>tr').find('th:eq(2)').text(formatNumber(subTotal));
});
</script>
<script type="text/javascript">
$(document).ready(function () {
$("#salesList").hide();
var oTable = $('#ExData').dataTable({
"aaSorting": [[0, "asc"]],
"aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "ALL"]],
"iDisplayLength": 10,
'bProcessing': true, 'bServerSide': true,
'sAjaxSource': '<?= base_url() . "issue/getIssue" ?>',
'fnServerData': function (sSource, aoData, fnCallback) {
aoData.push({
"name": "type",
"value": "1 "
});
$.ajax({'dataType': 'json', 'type': 'POST', 'url': sSource, 'data': aoData, 'success': fnCallback});
},
'fnRowCallback': function (nRow, aData, iDisplayIndex) {
},
"aoColumns": [{'sName': 'invoice_no'}, {'sName': 'sales_date'}, {'sName': 'rep'}, {'sName': 'dealer_code'}, {'sName': 'dealer_name'}, {'mRender':formatMoney}, {'mRender':formatMoney}, {'mRender': pay_status}, null],
"fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) {
}
});
});
</script>
<div class="box box-info">
<div class="box-body" style="display: block">
<form action="<?= site_url('issue/addIssue') ?>" method="post">
<div class="row">
<div class="col-md-3">
<div class="form-group"><label>Sales Date</label>
<div class="input-group">
<span class="input-group-addon">
<i class="glyphicon glyphicon-calendar"></i>
</span>
<input type="text" name="sales_date" id="sales_date" class="form-control datepicker"
style="cursor: pointer"
value="<?= date('Y-m-d') ?>" readonly>
</div>
</div>
</div>
<div class="col-md-3">
<div class="form-group"><label>Dealer</label>
<select name="dealer" id="dealer" class="form-control select2" required>
<option value="">Select Dealer</option>
<?php
if (!empty($dealer)) {
foreach ($dealer as $row) {
?>
<option value="<?= $row->dealer_id ?>"><?= $row->dealer_code . " - " . $row->dealer_name ?></option>
<?php
}
}
?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group"><label>Rep Code</label>
<select name="rep" id="rep" class="form-control select2" required>
<option value="">Select Rep</option>
<?php
if (!empty($rep)) {
foreach ($rep as $row) {
?>
<option value="<?= $row->rep_id ?>"><?= $row->rep_name ?></option>
<?php
}
}
?>
</select>
</div>
</div>
<div class="col-md-3">
<div class="form-group"><label>Invoice No</label>
<input type="text" name="invoice_no" id="invoice_no" class="form-control"
value="<?= $autoInv ?>">
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group"><label>Select Item</label>
<select name="item" id="item" class="form-control select2" required>
<option value="">Select Item</option>
<?php
if (!empty($products)) {
foreach ($products as $row) {
?>
<option value="<?= $row->item_id ?>"><?= $row->item_name ?></option>
<?php
}
}
?>
</select>
</div>
</div>
</div>
<!--table-->
<div id="salesList">
<div class="col-md-12 column">
<div class="col-md-12">
<div class="control-group table-group">
<label class="table-label">Sale Items *</label>
<div class="controls table-controls">
<table id="request_table" width="100%"
class="table items table-striped table-bordered table-condensed table-hover">
<thead>
<tr style="background-color: #3c8dbc;color: #ffffff;">
<th class="col-md-3">Item Name</th>
<th class="text-center col-md-2">Available Qty</th>
<th class="text-center col-md-2">Issue Qty</th>
<th class="text-center col-md-2">Unit Price</th>
<th class="text-center col-md-2">Discount</th>
</th>
<th class="col-md-1" style="width: 30px !important; text-align: center;">
<i class="fa fa-trash-o"
style="opacity:0.5; filter:alpha(opacity=50);"></i>
</th>
</tr>
</thead>
<tbody></tbody>
<tfoot>
<tr id="tfoot" class="tfoot active">
<th colspan="2">Total</th>
<th class="text-center">0</th>
<th class="text-right"></th>
<th class="text-right"></th>
<th class="text-center"><i class="fa fa-trash-o"
style="opacity:0.5; filter:alpha(opacity=50);"></i>
</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-8"></div>
<div class="col-md-4">
<button type="submit" id="add_sale" class="btn btn-primary btn-block"><i
class="fa fa-shopping-cart" aria-hidden="true"></i> Add Sale
</button>
</div>
</div>
</div>
</form>
<!--end of table-->
</div>
$('#request_table').append('<tr>' +
'<td ><span id="product" >' + jData.data[0].item_name + '</span>' +
'<input type="hidden" id="item_id[]" name="item_id[]" value="' + jData.data[0].item_id
+ '">' +
'</td>' +
'<td class="text-center">' + jData.data[0].qty + '</td>' +
'<td class="text-center"><input class="form-control text-center rquantity" data-qty-bal="' + jData.data[0].qty + '" autofocus required type="number" step="any" id="qty[]" name="qty[]" ></td>' +
'<td class="text-center"><input class="form-control text-right" autofocus required type="number" step="any" id="sales_price[]" name="sales_price[]" value="' + jData.data[0].unit_price + '"></td>' +
'<td class="text-center"><input class="form-control text-right" autofocus type="number" step="any" id="discount_price[]" name="discount_price[]" ></td>' +
'<td class="text-center" ><i class="fa fa-remove remove" style="cursor: pointer"></i>
</td>' +
'</tr>');