我目前正在使用HTML5,所以我需要使用DataTabels 1.10
问题是ajaxsouce无法从我拥有的php文件解析json。 实际上它工作正常,并且我的项目在DataTables 1.9.4和HTML4上仍能正常工作,但不知怎的,我在DataTables 1.10和HTML5上使用它时失败了
这就是我称之为ajax的方式:
$(document).ready(function() {
$('#example').dataTable( {
"ajax": "viewobat1.php"
} );
});
我也改为"sAjaxSource": "viewobat1.php"
,但也不会工作
这是我在viewobat.php
中为了获取json
$sql="SELECT * FROM obat";
$hasil=mysql_query($sql);
print("{\"aaData\":[");
$tambahan="\n";
$no=0;
while($cetak=mysql_fetch_array($hasil))
{$no++;
$no;
$idobat=$cetak[0];
$tanggalmasuk=$cetak[1];
$namaobat=$cetak[2];
$jenis=$cetak[3];
$macam=$cetak[4];
$keterangan=$cetak[5];
$stok=$cetak[6];
print($tambahan."[\"$no\","."\"$idobat\","."\"$tanggalmasuk\","."\"$namaobat\","."\"$jenis\","."\"$macam\",
"."\"$keterangan\","."\"$stok\]");
$tambahan=",\n";
}
print("\n]}\n");
?>
我没有看到我的json有任何问题,PHP正在返回一个有效的JSON数组
但数据不会显示在表格中,
我错过了什么吗?〜EDITED〜
我已经改变了使用datatables.net的服务器端教程获取所需数据的方法---> SERVER SIDE
我的代码是这样的,
<?php
error_reporting(0);
$table = 'obat';
$primaryKey = 'idobat';
$columns = array(
array( 'db' => 'idobat', 'dt' => 0 ),
array( 'db' => 'tanggalmasuk', 'dt' => 1 ),
array( 'db' => 'namaobat', 'dt' => 2 ),
array( 'db' => 'jenis', 'dt' => 3 ),
array( 'db' => 'macam', 'dt' => 4 ),
array( 'db' => 'keterangan', 'dt' => 5 ),
array( 'db' => 'stok', 'dt' => 6 ),
);
$sql_details = array(
'user' => 'root',
'pass' => '',
'db' => 'medical',
'host' => 'localhost'
);
require( 'js\DataTables-1.10.2\examples\server_side\scripts\ssp.class.php' );
echo json_encode(
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);
当然...... PHP再次返回有效数据
我调用ajax的方式与教程完全相同......
当然......数据仍然不会出现在我的表格中......
所以,我又错过了什么? (O_O)
答案 0 :(得分:1)
Yeey ......我找到了答案(这是奇怪的答案)
刚刚将我的脚本更改为 - &GT;
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="http://cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>
它完成了所有技巧......这很奇怪,不是吗?我知道..
我不知道为什么我应该使用需要http的CDN而无法使用PATH_TO_FOLDER方法从我自己的服务器调用它,
但无论如何它仍然有效, 来自问题的参考 - &gt; cant get datatables net working with javascript
答案 1 :(得分:0)
department.php(服务器端)
<?php
$qry="select dept_id,dept_name from tb_department ";
$result=mysqli_query($connection,$qry);
$data=array();
$i=0;
while($row=mysqli_fetch_assoc($result)){
$data[] = $row;
}
$response = array(
'aaData' => $data,
'iTotalRecords' => count($data),
'iTotalDisplayRecords' => count($data)
);
echo json_encode($response);
?>
index.php(客户端)
<table id="example" class="table table-bordered table-striped table-hover">
<thead>
<tr>
<th>Department ID </th>
<th>Department Name</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Department ID </th>
<th>Department Name</th>
</tr>
</tfoot>
</table>
<script >
$(document).ready(function(){
var table= $('#example').DataTable( {
ajax: {
url: 'department.php',
dataSrc: 'aaData',
method:'POST'
},
columns: [
{ data: 'dept_id' },
{ data: 'dept_name' }
],
});
</script>
这段代码对我有用.... 使用dataTable 1.10,jQuery 2.1.0