FooTables 插件(类似于 DataTables)- 如何从 server/database 中检索列和行数据
FooTables plugin (Similiar to DataTables) - How to retrieve column and row data from a server/database
注意:还请记住我不知道 JavaScript 而且我只知道基础知识 PHP。
我搜索了高、低、远和宽。我什至尝试学习一些 JS 来找出解决方案。但我在所有方面都失败了。令人惊讶的是,这个问题在这个网站上并不存在。所以这里没有重复的问题。另外,请不要将此问题与询问有关从 json 文件加载大型数据集(大量行)的其他问题混淆。这些问题是存在的,我已经知道该怎么做了。
有了 DataTables 插件,这很容易。并且有文档可以向您展示如何准确地执行此操作。遗憾的是,这在 fooTable 网站上不存在。
Here is the only page that FooTables has that is even close to what I need.
分解问题,因为它适用于任何人:
- 页面上的 table 正在使用 FooTable 插件
- 数据库中有 10,000 行数据。
- 网站所有者需要将数据库连接到 table
- table有分页。每页 10 行。
- 页面加载时只应加载 10 行。不是整个记录数据库。
- 在页面加载时,table 从数据库中提取 10 行,只有 10 行使页面速度更快。
这基本上就是我需要的。
感谢任何有关此事的帮助我已经处理了 2 周但没有取得积极成果。还请记住,我不知道 JavaScript,我只知道 Fundamental PHP。提前致谢!
编辑:这是 rows.php 的正确方法吗?
<?php
// rows
$rowData = array(
'id' => $id,
'firstName' => $firstName,
'something' => $something,
'jobTitle' => $jobTitle,
'started' => $started,
'dob' => $dob,
'status' => $status
);
header('Content-Type: application/json');
echo json_encode($rowData, JSON_UNESCAPED_SLASHES);
"loading from a JSON file" 实际上是相关的。
在您 link 的页面中,他们提供了以下代码:
jQuery(function($){
$('.table').footable({
"columns": $.get('columns.json'),
"rows": $.get('rows.json')
});
});
这是向服务器发出 AJAX 请求以从 JSON 文件中获取数据,但它不必来自文件,只要服务器响应 JSON数据。
所以您要做的是 $.get('/columns.php')
获取列数据,$.get('/rows.php')
获取行数据。 More on $.get here.
然后,在 columns.php
中,您必须调用数据库,提取数据,将其结构化 same as this and and this and then json_encode。
现在我知道你说你不懂任何 JS,只会一点点 PHP,但你将不得不学习一些,因为我不会为你编写所有代码; )
<?php // columns.php
$data = array (
array (
'name' => 'id',
'title' => 'ID',
'breakpoints' => 'xs sm',
'type' => 'number',
'style' =>
array (
'width' => 80,
'maxWidth' => 80,
),
),
array (
'name' => 'firstName',
'title' => 'First Name',
),
array (
'name' => 'lastName',
'title' => 'Last Name',
),
array (
'name' => 'something',
'title' => 'Never seen but always around',
'visible' => false,
'filterable' => false,
),
array (
'name' => 'jobTitle',
'title' => 'Job Title',
'breakpoints' => 'xs sm',
'style' =>
array (
'maxWidth' => 200,
'overflow' => 'hidden',
'textOverflow' => 'ellipsis',
'wordBreak' => 'keep-all',
'whiteSpace' => 'nowrap',
),
),
array (
'name' => 'started',
'title' => 'Started On',
'type' => 'date',
'breakpoints' => 'xs sm md',
'formatString' => 'MMM YYYY',
),
array (
'name' => 'dob',
'title' => 'Date of Birth',
'type' => 'date',
'breakpoints' => 'xs sm md',
'formatString' => 'DD MMM YYYY',
),
array (
'name' => 'status',
'title' => 'Status',
),
);
header('Content-Type: application/json');
echo json_encode($data, JSON_UNESCAPED_SLASHES);
这与 fooTable 的 columns.json 示例完全相同,只是在 PHP.
现在它在 PHP 中,您可以从数据库中提取数据而不是硬编码。我不知道你的数据库是什么样的,所以我想写代码也没法给你写。
rows.php 看起来几乎一样,只是数组格式不同。
注意:还请记住我不知道 JavaScript 而且我只知道基础知识 PHP。
我搜索了高、低、远和宽。我什至尝试学习一些 JS 来找出解决方案。但我在所有方面都失败了。令人惊讶的是,这个问题在这个网站上并不存在。所以这里没有重复的问题。另外,请不要将此问题与询问有关从 json 文件加载大型数据集(大量行)的其他问题混淆。这些问题是存在的,我已经知道该怎么做了。
有了 DataTables 插件,这很容易。并且有文档可以向您展示如何准确地执行此操作。遗憾的是,这在 fooTable 网站上不存在。
Here is the only page that FooTables has that is even close to what I need. 分解问题,因为它适用于任何人:
- 页面上的 table 正在使用 FooTable 插件
- 数据库中有 10,000 行数据。
- 网站所有者需要将数据库连接到 table
- table有分页。每页 10 行。
- 页面加载时只应加载 10 行。不是整个记录数据库。
- 在页面加载时,table 从数据库中提取 10 行,只有 10 行使页面速度更快。
这基本上就是我需要的。
感谢任何有关此事的帮助我已经处理了 2 周但没有取得积极成果。还请记住,我不知道 JavaScript,我只知道 Fundamental PHP。提前致谢!
编辑:这是 rows.php 的正确方法吗?
<?php
// rows
$rowData = array(
'id' => $id,
'firstName' => $firstName,
'something' => $something,
'jobTitle' => $jobTitle,
'started' => $started,
'dob' => $dob,
'status' => $status
);
header('Content-Type: application/json');
echo json_encode($rowData, JSON_UNESCAPED_SLASHES);
"loading from a JSON file" 实际上是相关的。
在您 link 的页面中,他们提供了以下代码:
jQuery(function($){
$('.table').footable({
"columns": $.get('columns.json'),
"rows": $.get('rows.json')
});
});
这是向服务器发出 AJAX 请求以从 JSON 文件中获取数据,但它不必来自文件,只要服务器响应 JSON数据。
所以您要做的是 $.get('/columns.php')
获取列数据,$.get('/rows.php')
获取行数据。 More on $.get here.
然后,在 columns.php
中,您必须调用数据库,提取数据,将其结构化 same as this and and this and then json_encode。
现在我知道你说你不懂任何 JS,只会一点点 PHP,但你将不得不学习一些,因为我不会为你编写所有代码; )
<?php // columns.php
$data = array (
array (
'name' => 'id',
'title' => 'ID',
'breakpoints' => 'xs sm',
'type' => 'number',
'style' =>
array (
'width' => 80,
'maxWidth' => 80,
),
),
array (
'name' => 'firstName',
'title' => 'First Name',
),
array (
'name' => 'lastName',
'title' => 'Last Name',
),
array (
'name' => 'something',
'title' => 'Never seen but always around',
'visible' => false,
'filterable' => false,
),
array (
'name' => 'jobTitle',
'title' => 'Job Title',
'breakpoints' => 'xs sm',
'style' =>
array (
'maxWidth' => 200,
'overflow' => 'hidden',
'textOverflow' => 'ellipsis',
'wordBreak' => 'keep-all',
'whiteSpace' => 'nowrap',
),
),
array (
'name' => 'started',
'title' => 'Started On',
'type' => 'date',
'breakpoints' => 'xs sm md',
'formatString' => 'MMM YYYY',
),
array (
'name' => 'dob',
'title' => 'Date of Birth',
'type' => 'date',
'breakpoints' => 'xs sm md',
'formatString' => 'DD MMM YYYY',
),
array (
'name' => 'status',
'title' => 'Status',
),
);
header('Content-Type: application/json');
echo json_encode($data, JSON_UNESCAPED_SLASHES);
这与 fooTable 的 columns.json 示例完全相同,只是在 PHP.
现在它在 PHP 中,您可以从数据库中提取数据而不是硬编码。我不知道你的数据库是什么样的,所以我想写代码也没法给你写。
rows.php 看起来几乎一样,只是数组格式不同。