ajax - 如何使用 Ajax 从 Controller 获取 DataTable 的数据到 View
问题描述
在我的主控制器中,我有一个从数据库中获取数据、对其进行格式化并将其输出为 JSON 的函数。我现在的问题是如何将这些数据显示到 DataTable。我阅读的大多数示例都将数据保存在与控制器不同的文件中。我希望数据来自控制器中的函数。我如何调用该函数?
查看 (SampleView.php)
<table id="example" class="display" width="100%" cellspacing="0">
<thead>
<tr>
<th>EmpID</th>
<th>FirstName</th>
<th>LastName</th>
</tr>
</thead>
</table>
<script type="text/javascript">
$( document ).ready(function() {
var table = $('#example').DataTable( {
"ajax": "main/getDataFunction",
// "ajax": "getDataFunction",
// "ajax": "<?php echo base_url()."main/getDataFunction"; ?>",
// "ajax": { url: 'main/getDataFunction', type: 'POST' },
"bPaginate":true,
"bProcessing": true,
"pageLength": 10,
"columns": [
{ mData: 'EmpID' } ,
{ mData: 'FirstName' },
{ mData: 'LastName' }
]
});
});
</script>
控制器(Main.php)
function getDataFunction() {
$sampleData = $this->db->getSampleData();
$data = array();
foreach($sampleData as $key) {
array_push($data, array("EmpID" => $key->empID,
"FirstName" => $key->firstName,
"LastName" => $key->lastName));
}
$results = array("sEcho" => 1,
"iTotalRecords" => count($data),
"iTotalDisplayRecords" => count($data),
"aaData"=>$data);
echo json_encode($results);
}
echo json_encode($results) 的输出
{"sEcho":1,"iTotalRecords":1,"iTotalDisplayRecords":1,"aaData":[{"EmpID":"1","FirstName":"JOHN","LastName":"DOE"}]}
解决方案
我不确定 DataTable 但您可以做的是您可以使用 eval() 首先评估 json 数据,然后将您的 json 响应值获取到视图中。
我知道的老办法是——</p>
$.ajax(function() { type : 'get', // or 'post', data : {key:value},
dataType : 'json', success : function(response){ var html_data = response.eval() ; // 这将序列化您的数据对象 $('selector').val(html_data.name); // $('selector').val(html_data.sEcho); 根据您的代码输出。 // 或$('选择器').html(html_data); } });
推荐阅读
- android - zxing android 二维码生成器
- c# - 编写 if 语句是否会影响程序的速度和效率?
- flutter - Flutter中输入值时如何保存TextField的值
- sql - 如何找到最接近指定日期的最早数据?
- for-loop - 如何在 Kotlin 中以数组索引作为起点/终点进行反向 for 循环?
- c++ - 无法将派生类存储在基类指针的向量中
- c# - 基于其他数组添加数组元素
- android - 关于android studio中intent.getStringExtra和intent.putExtra的解释
- javascript - 将对象内的对象集合从 js 传递到 C#
- curl - 从 fabric.io 中提取特定的统计数据