Php 如何用从mysql检索的数据填充Jquery datatable?
我试图用数据库中的数据填充某个按钮上的datatable 但是,以下代码正在工作[使用文本文件] 如何将这些数据传递给php?? 以下代码不起作用[使用php/mysql]Php 如何用从mysql检索的数据填充Jquery datatable?,php,mysql,ajax,datatables,jquery-datatables,Php,Mysql,Ajax,Datatables,Jquery Datatables,我试图用数据库中的数据填充某个按钮上的datatable 但是,以下代码正在工作[使用文本文件] 如何将这些数据传递给php?? 以下代码不起作用[使用php/mysql] 如何使其工作???问题在于您对数据进行JSON编码的方式。简单地执行console.log将有助于开始工作。但你也可以试试这个 PHP Side $result = mysql_query("SELECT data1,data2,data3,data4 from tbl_data"); //query
如何使其工作???问题在于您对数据进行JSON编码的方式。简单地执行console.log将有助于开始工作。但你也可以试试这个
PHP Side
$result = mysql_query("SELECT data1,data2,data3,data4 from tbl_data"); //query
$array = $conn->query($result); //fetch result
echo json_encode($array);
HTML side,
$(function ()
{
$.ajax({
url: 'response.php',
data: "",
dataType: 'json',
success: function(data)
{
var id = data[0]; //first attribute
var vname = data[1]; //second attribute
$('#tblData').html("<b>id: </b>"+id+"<b> name: </b>"+vname); //Set output element html
}
});
})
它从文本文件工作的原因是因为它是纯文本。但是DB查询frim PHP的结果是response.PHP中的一个对象,在while循环部分,这应该可以工作-
$dataArr['aaData'] = Array();
while($row = $res->fetch_assoc()){
$r = Array();
foreach($row as $key=>$value){
$r[] = "$key $value";
}
$dataArr['aaData'][] = $r;
}
header('Content-Type: application/json');
echo json_encode($dataArr);
/*
The output will be of the form,
{
"aaData": [
[
[
"colname data"
...
],
]
*/
在jquery数据表中,显示来自服务器端的动态数据的操作如下 在客户端
oTable = $('#tblData').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "response",
"fnServerParams": function ( aoData ) {
aoData.push( { "name": "more_data", "value": "my_value" } );
}
});
在发球端,你需要尽你所能
$output = array(
"sEcho"=>intval($_GET['sEcho']),
"iTotalRecords"=>$iTotal, // total number of records
"iTotalDisplayRecords"=>$iFilteredTotal, // if filtered data used then tot after filter
"aaData"=>array()
);
while($row = $result->fetch_array(MYSQLI_ASSOC)){
$output["aaData"][] = $row ;
}
echo json_encode( $output );
我正在构建一个开源CRM www.sqcrm.com,您可以查看代码,对于数据显示,我使用了Jquery数据表。这可能有助于您使用数据表的不同功能。我尝试了这个方法,但没有成功。它将继续显示加载消息。请再试一次-dataTable显示带有此错误的空白记录-DataTables警告表id='tblData':从数据源为行请求的未知参数“0”0@Vikram现在试试这个。删除了花括号,但列名和数据已像字符串一样连接在一起,如您的问题中所示。我现在收到此错误-DataTables警告table id='tblData':DataTables警告:无法解析来自服务器的JSON数据。这是由JSON格式错误引起的。通过使用JSONECODE,我可以确保正确解析JSON。在[]上尝试输出,这将帮助您找出错误发生的位置。经过一些修改后,它现在可以工作。其中一个修改类似于-使用$r[]=$value;而不是$r[]=$key$value;您的方法不安全!mysql\u查询已被弃用。请更新到MySQLi甚至PDO,而不是使用mysql\u查询。$result=$conn->querySELECT data1、data2、data3、data4 from tbl\u data;
oTable = $('#tblData').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "response",
"fnServerParams": function ( aoData ) {
aoData.push( { "name": "more_data", "value": "my_value" } );
}
});
$output = array(
"sEcho"=>intval($_GET['sEcho']),
"iTotalRecords"=>$iTotal, // total number of records
"iTotalDisplayRecords"=>$iFilteredTotal, // if filtered data used then tot after filter
"aaData"=>array()
);
while($row = $result->fetch_array(MYSQLI_ASSOC)){
$output["aaData"][] = $row ;
}
echo json_encode( $output );