“请求的未知参数”数据表错误将数据从 PHP 传递到 JS
Posted
技术标签:
【中文标题】“请求的未知参数”数据表错误将数据从 PHP 传递到 JS【英文标题】:"Requested unknown parameter" datatables error passing data from PHP to JS 【发布时间】: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';
。非常感谢。你可以回复我的问题,我会接受你的回答!祝你有美好的一天
【参考方案1】:
您的 $resultados
按钮数据值称为 botones
- 但您似乎在此处使用标题名称:$fields[]['data'] = 'ACCIÓN';
而不是数据值名称。
您可以改为将其更改为 $fields[]['data'] = 'botones';
。
【讨论】:
以上是关于“请求的未知参数”数据表错误将数据从 PHP 传递到 JS的主要内容,如果未能解决你的问题,请参考以下文章