Jquery Can';尽管Json(DataTables)格式良好,但我不能向我的表中添加行
我想用AJax请求填充一个表(DataTables) 我的请求ajax返回Json,但无法填充表格,我有以下错误: DataTables警告:表id=dt table-为第1行第0列请求了未知参数“0”。有关此错误的更多信息,请参阅 我的桌子:Jquery Can';尽管Json(DataTables)格式良好,但我不能向我的表中添加行,jquery,ajax,datatables,Jquery,Ajax,Datatables,我想用AJax请求填充一个表(DataTables) 我的请求ajax返回Json,但无法填充表格,我有以下错误: DataTables警告:表id=dt table-为第1行第0列请求了未知参数“0”。有关此错误的更多信息,请参阅 我的桌子: <div> <div class="table-responsive"> <table id="dt-table" class="table table-striped table-bordered"&g
<div>
<div class="table-responsive">
<table id="dt-table" class="table table-striped table-bordered">
<thead>
<tr>
<th>Invoice</th>
</tr>
</thead>
<tbody>
<tr>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
var table = $('#dt-table').DataTable({});
$(document).on("click", ".button", function() {
var inputVal = $(this).text();
var selectVal = $('#select option:selected').val();
$.post("/ajax/invoice.php", {find: inputVal, column: selectVal}).done(function(data){
console.log(data)
table.rows.add(data).draw();
});
});
ajax响应:
[{"invoice":"AZERT"},{"invoice":"JFKDH"},{"invoice":"DKHFVEP"}]
$column = $_POST['column'];
$request = $bdd->prepare("SELECT invoice from table_master WHERE $column = :find");
$request->execute(array(
':find' => $_POST['find']
));
$result = $request->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
我的请求:
[{"invoice":"AZERT"},{"invoice":"JFKDH"},{"invoice":"DKHFVEP"}]
$column = $_POST['column'];
$request = $bdd->prepare("SELECT invoice from table_master WHERE $column = :find");
$request->execute(array(
':find' => $_POST['find']
));
$result = $request->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
我看不出问题来自哪里,我查看了DataTables文档,我的json通常格式正确
您需要定义要使用
invoice
参数作为列源的时间,如:
var table = $('#dt-table').DataTable({"columns":[{ "data": "invoice"}]});
我不熟悉php,但当我试图从模式弹出窗口中单击某行更新某些单元格时,遇到了相同的问题。最后,我在post回调中设置了datatable属性。我还必须在重新创建表之前销毁它。以下是我的LoadData函数回调:
.done(function (result) {
if (result.isError) {
window.location.href = result.newUrl;
}
else {
var html = '';
$('#searchTable').dataTable().fnDestroy();
$('#searchTableBody').empty();
if (result.TransactionDetails.lenght == 0) {
html += '<tr><td>No Records Found</td></tr>';
}
else {
$.each(result.TransactionDetails, function (i, item) {
html += '<tr><td id="hiddenIdentifier" >' + item.x + '</td><td>' + item.y + '</td><td>' + item.z + '</td><td style="width: 10%" >' + item.a + '</td><td style="width: 30%">' + item.b + '</td><td>' + item.c + '</td><td style="width: 50%">' + item.d + '</td><td style="width: 80%"><input type="button" data-toggle="modal" data-target="#detailsModal" class="table-btn" id="btnViewDetails" value="View Details" /><input type="button" id="btnEditAmt" data-toggle="modal" class="table-btn" data-target="#amtModal" value="Edit Amount" /></td></tr>';
});
}
$('#searchTableBody').append(html);
var table = $('#searchTable').DataTable({
searching: false,
paging: true,
columnDefs: [
{
"targets": [0],
"visible": false,
"searchable": false
},
{
"targets": [1],
"visible": true,
"searchable": true
},
{
"targets": [7],
"orderable": false
}
]
})
$('#searchTable').show();
$('#loaderLoadData').fadeOut();
}
})
.done(函数(结果){
if(result.isError){
window.location.href=result.newUrl;
}
否则{
var html='';
$('#searchTable').dataTable().fnDestroy();
$('#searchTableBody').empty();
if(result.TransactionDetails.lenght==0){
html+=“未找到任何记录”;
}
否则{
$.each(result.TransactionDetails,函数(i,项){
html+=''+item.x+''+item.y+''+item.z+''+item.a+''+item.b+''+item.c+''+item.d+'';
});
}
$('#searchTableBody')。追加(html);
var table=$('#searchTable').DataTable({
搜索:假,
是的,
columnDefs:[
{
“目标”:[0],
“可见”:假,
“可搜索”:false
},
{
“目标”:[1],
“可见”:真实,
“可搜索”:真
},
{
“目标”:[7],
“可订购”:false
}
]
})
$(“#搜索表”).show();
$('#loaderLoadData').fadeOut();
}
})
它只通过Api调用工作。fnDestroy()是关键。确保在重新创建之前将其销毁。还请注意,我在done函数内设置了DataTable属性。谢谢,但我有相同的错误:“DataTables警告:table id=dt table-请求第1行第0列的未知参数‘invoice’。有关此错误的更多信息,请参阅“我反转了这两个参数:[{“invoice”:“data”}],Datatables不再显示错误,但我的表中每行有一个字母