首页 > 解决方案 > 发送 json 响应但有大量数据

问题描述

我有一个问题,我发送到我的视图的数据与查询生成的数据量不匹配。仅显示单个数据。

这是我的功能:

function lokasi_ajax() {
		var kode_lokasi = $('#kode_lokasi').val();

		$.ajax({
			url : '<?= base_url() ?>index.php/asset/asset_dijual_proses/lokasi_ajax',
			data: 'kode_lokasi='+kode_lokasi,
			success : function (data) {
				var json = data;
				value = JSON.parse(json);

				console.log(value.kode_aset);

			}
		});
	}

这是我的控制器上的方法:

function lokasi_ajax()
	{
		$kode_lokasi = $_GET['kode_lokasi'];
		$data =array();

		$query = $this->db->query("SELECT id_reg, item_lokasi, item_barang FROM asset_item 
			WHERE item_lokasi= '$kode_lokasi'");
		foreach ($query->result() as $row) {
			$data = array(
				'kode_aset' => $row->id_reg,
				'item_lokasi' => $row->item_lokasi,
				'item_barang' => $row->item_barang 
			);
		}
		echo json_encode($data);
	}

应该生成的数据量如下图:

来自 dbms 的结果数据

但从响应json只显示一个这样的数据: json response result

标签: javascriptphpjsonajaxcodeigniter

解决方案


您的 foreach 循环重新分配数据。您需要将其添加到数组中。

foreach ($query->result() as $row) {
    $data[] = array(
        'kode_aset' => $row->id_reg,
        'item_lokasi' => $row->item_lokasi,
        'item_barang' => $row->item_barang 
    );
}


推荐阅读