【发布时间】:2021-09-14 11:01:39
【问题描述】:
我正在尝试添加一个额外的默认列(编辑和删除按钮),以及其余的行,动态。
当我尝试传递我的 $resultados 并在我的 JS 代码中使用 datos 时收到此错误。
DataTables warning: table id=tablaUsuarios - Requested unknown parameter 'ACCIÓN' for row 0, column 6. For more information about this error, please see http://datatables.net/tn/4
我的$resultados 已经正确包含数据(即使有额外的列):
我看到我的表格有我的数据,但没有看到按钮列(我在$resultados 变量内有这个数据,正如你在上一个屏幕截图中看到的那样)。
这是我的完整代码:
<?php
include_once(DIR_PLUGINS.'/alexcrudgenerator/main.php');
$test = new GenerateCrud($_POST['tableName'], $_POST['id'], $_POST['tableFields']);
switch($_POST['action']){
case 'datosTabla': // OK.
$res = json_decode($_POST['datos']);
echo json_encode($res, JSON_UNESCAPED_UNICODE);
break;
case 'showtable': // OK.
$res = getEntireTable($_POST['tableName'], $_POST['id'], $_POST['tableFields']);
foreach ($res as $data){
$data->botones = "<div class='text-center'><div class='btn-group'><button id='modificar_$data->id' class='btn btn-primary btn-sm btnEditar' value='edit'><i class='material-icons'>edit</i></button><button onclick='Delete($data->id)' class='btn btn-danger btn-sm btnBorrar'><i class='material-icons' value='delete'>delete</i></button></div></div>";
$resultados['data'][] = $data;
}
$resultados = json_encode($resultados); // 7 PROPIEDADES
foreach(json_decode($_POST['tableFields']) as $columnsDB){
$fields[] = array('data'=>$columnsDB);
}
$fields[]['data'] = 'ACCIÓN';
$fields = json_encode($fields);
?>
<head>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<div class="container caja">
<div class="row">
<div class="col-lg-12 col-sm-12">
<div>
<table id="tablaUsuarios" class="table table-striped table-bordered table-condensed hover" style="width:100%" >
<thead class="text-center">
<tr>
<?php
foreach (json_decode($_POST['tableFields']) as $columnsTH){
echo '<th>' . strtoupper($columnsTH) . '</th>';
}
echo '<th>ACCIÓN</th>';
?>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
var datos= <?=$resultados?>;
var dynamicColumns = <?=$fields?>;
datos = JSON.stringify(datos); // I convert to JSON AGAIN because if not, my data is not showed
$('#tablaUsuarios').DataTable({
"language": {"url": "https://cdn.datatables.net/plug-ins/1.10.25/i18n/Spanish.json"},
"paging": true,
"lengthChange": true,
"searching": true,
"info": true,
"autoWidth": true,
"scrollX": true,
"ajax":{
"url": '<?=SITE_URL_ADMIN?>/alexcrudgenerator/crud/res/',
"method": 'POST',
"data":{action: "datosTabla", datos: datos}
},
"columns": dynamicColumns
});
})
</script>
<?php
break;
}
?>
有人可以帮助我吗?提前谢谢!
【问题讨论】:
-
嘿! ACCIÓN 的重音会不会做错什么?
-
很难阅读您的
$resultados变量的屏幕截图。这是reasons why 之一,将数据作为文本而不是文本图像提供几乎总是更好。 -
话虽如此,看起来您的
$resultados按钮数据值被称为botones- 但您似乎在这里使用标题名称:$fields[]['data'] = 'ACCIÓN';而不是数据值名称。那么,如果将其更改为$fields[]['data'] = 'botones';会发生什么? -
@DafuQi 谢谢你的回复,不幸的是,没有,口音没有问题:D
-
@andrewjamesOhhh,是的,你是对的......我不得不将
$fields[]['data'] = 'ACCIÓN';更改为$fields[]['data'] = 'botones';。非常感谢。你可以回复我的问题,我会接受你的回答!祝你有美好的一天
标签: php jquery datatables