gpt4 book ai didi

mysql - Codeigniter MySQL 数组中的数据

转载 作者:行者123 更新时间:2023-11-29 09:30:07 25 4
gpt4 key购买 nike

我在模型中有一个查询,如下所示:

public function isExistProduct($q)
{
if (!empty($q)) {

$this->db->select("store_item.item_name, store_update_stock.*, sum(qty) as qty, unit_price as up");
$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');
$this->db->where("store_update_stock.status=1 and store_item.item_id= $q");
$this->db->group_by('store_update_stock_details.unit_price','store_item.item_id');

$q1 = $this->db->get();

if ($q1->num_rows() > 0) {
return $q1->result_array();
}
return 0;
}
}

当我设置 store_item.item_id=1 时,会在同一商品中返回具有不同 unit_prices 的两条记录,如下所示(假设 item_name=A)。

+-----------+-----+------------+
| item_name | qty | unit_price |
+-----------+-----+------------+
| A | 20 | 8.50 |
| A | 50 | 7.50 |
+-----------+-----+------------+

这就是我想要的输出。它是正确的。然后我将这两条记录传递给 Controller ​​中的以下函数。

public function isExistProduct()
{
$id = $this->input->get('q');
$data = $this->Item_model->isExistProduct($id);
if (!empty($data)) {
echo json_encode(array('status' => true, 'data' => $data));
} else {
echo json_encode(array('status' => false));
}
}

之后,我认为希望通过以下 JavaScript 显示此结果。

script type="text/javascript">

$(document).on("change", "#item", function () {

$.ajax({
'url': '<?=site_url("item/isExistProduct/?q=")?>' + $('#item').val(),
'method': 'GET',
'success': function (data) {


var jData = JSON.parse(data);
if (jData.status == true) {

jData.data.forEach(data => {
$('#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-right" disabled id="sales_price[]" name="sales_price[]" value="' + jData.data[0].up+ '"></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" ><i class="fa fa-remove remove" style="cursor: pointer"></i></td>' +
'</tr>');
})
}

},
'error': function () {

}
});


});
</script>

当我在 View 中运行此脚本时,有两条记录。但将第一个记录加倍如下。

+-----------+-----+------------+
| item_name | qty | unit_price |
+-----------+-----+------------+
| A | 20 | 8.50 |
| A | 20 | 8.50 |
+-----------+-----+------------+

可能出了什么问题?谁能帮我吗?

设置一个以data为参数的函数后,输出如下结果。 View2

最佳答案

在 forEach 循环中,您应该只使用 data。无需引用该数组。这一行:

jData.data.forEach(data => {

设置一个以数据为参数的函数。

所以这些行:

$('#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-right" disabled id="sales_price[]" name="sales_price[]" value="' + jData.data[0].up+ '"></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" ><i class="fa fa-remove remove" style="cursor: pointer"></i></td>' +
'</tr>');
})

成为:

$('#request_table').append('<tr>' +
'<td ><span id="product" >' + data.item_name + '</span>' +
'<input type="hidden" id="item_id[]" name="item_id[]" value="' + data.item_id + '">' +
'</td>' +
'<td class="text-center">' + data.qty + '</td>' +
'<td class="text-center"><input class="form-control text-right" disabled id="sales_price[]" name="sales_price[]" value="' + data.up + '"></td>' +
'<td class="text-center"><input class="form-control text-center rquantity" data-qty-bal="' + data.qty + '" autofocus required type="number" step="any" id="qty[]" name="qty[]" ></td>' +
'<td class="text-center" ><i class="fa fa-remove remove" style="cursor: pointer"></i></td>' +
'</tr>');
})

关于mysql - Codeigniter MySQL 数组中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58903398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com