php - 如何使用 Datatables 在 ajax 调用中循环?
问题描述
我试图data
在我的数据库中设置columns:
我自己在 Ajax 调用中的数组。
我需要在动态列中替换那些静态列(我创建了自己的类构造函数,我的数组是```$myObject->tableFields````。
我只想知道如何在循环中循环列(在 ajax 调用中)以替换usuario
, apellido1
, apellido2
, email
)$myObject->tableFields
以循环整个数组。
你们知道我想说什么吗,伙计们?
<?php
get_header_admin('Alex - AlexCRUDGenerator');
get_content_admin('Alex', 'AlexCRUDGenerator');
global $DB;
?>
<head>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<?php
class GenerateCrud {
// Properties.
public $tableName;
public $id;
public $tableFields = array();
// Constructor.
function __construct($tableName, $id, $tableFields){
$this->tableName = $tableName;
$this->id = $id;
$this->tableFields = $tableFields;
//is_string($tableName) ? $this->tableName = $tableName : $this->tableName = null;
//is_string($id) ? $this->id = $id : $this->id = null;
//is_string($tableFields) ? $this->tableFields= $tableFields : $this-$tableFields = null;
}
}
$myObject = new GenerateCrud('users_test', 'id', ['usuario', 'apellido1', 'apellido2', 'email']);
// Parse array to string.
$myStringArray = implode(",", $myObject->tableFields);
$sql = "SELECT $myStringArray FROM $myObject->tableName";
$res = $DB->get_records($sql);
#################################### Generate HTML - START ####################################
$buttonModal = "<div class='container'><div class='row'><div class='col-lg-12'><button id='btnNuevo' type='button' class='btn btn-info' data-toggle='modal'><i class='material-icons'>library_add</i></button></div></div></div>";
$html = "<table id='crudTable' class='display' style='width:100%'>";
$html .= "<thead>";
$html .= '<tr>';
foreach ($myObject->tableFields as $ths){
$html .= '<th>' . $ths . '</th>';
}
$html .= '</tr>';
$html .= "</thead>";
$html .= "<tbody>";
foreach ($res as $r){
$html .= '<tr>';
foreach($myObject->tableFields as $field){
$html .= '<td>' . $r->$field . '</td>';
}
$html .= '</tr>';
}
$html .= "</tbody>";
$html .= '</table>';
#################################### Generate HTML - END ####################################
echo $buttonModal . '<br>' . $html;
?>
<!-- #################################### JAVASCRIPT START #################################### -->
<script>
$(document).ready(function() {
var id, opcion;
opcion = 4;
$('#crudTable').DataTable({
"language": {"url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/Spanish.json"},
"paging": true,
"lengthChange": true,
"searching": true,
"info": true,
"autoWidth": true,
"scrollX": true,
"ajax": {
"url": 'main',
"method": 'POST',
"data": {opcion: opcion}
},
"columns": [
{"data": "id"}, // I want this data in a dynamic way with my own array ($myObject->tableFields).
{"data": "usuario"}, // I want this data in a dynamic way with my own array ($myObject->tableFields).
{"data": "apellido1"}, // I want this data in a dynamic way with my own array ($myObject->tableFields).
{"data": "apellido2"}, // I want this data in a dynamic way with my own array ($myObject->tableFields).
{"data": "email"}, // I want this data in a dynamic way with my own array ($myObject->tableFields).
{"defaultContent": "<div class='text-center'><div class='btn-group'><button class='btn btn-primary btn-sm btnEditar'><i class='material-icons'>edit</i></button><button class='btn btn-danger btn-sm btnBorrar'><i class='material-icons'>delete</i></button></div></div>"}
],
});
} );
</script>
<!-- #################################### JAVASCRIPT END #################################### -->
<?php
get_footer_admin();
?>
解决方案
推荐阅读
- r - 迭代 group_by()、summarise() 和基于 df 名称的唯一输出名称的最佳方法是什么?
- perl - 运行、保存变量状态、中断执行以及从中断前的最后一个状态重新加载变量
- python - 错误说明“min() arg 是一个空序列”
- google-sheets - 谷歌表格公式将我的 { 转换为 %7D 和 %7B
- javascript - Shelljs - awk 没有替换给定的格式
- python - 使用 ElementTree 在 Python 中解析 xsi:type=""
- google-cloud-platform - Terraform data.google_compute_network 不工作
- python - 不推荐使用 model.predict_classes - 改用什么?
- c++ - 无法返回指向数组 C++ Visual Studio 的指针
- python - 我在这段代码中找不到任何问题(反向字符串)