1

我正在使用 DataTables(jQuery 插件)来显示一些数据;此数据源自 MySQL 数据库,一些 PHP 代码将其处理为 HTML 中的 JSON 格式。我有这一切工作,但它似乎不是合适的方式。

但这对 jQuery 不是很有效,因为我想做动态刷新和排序之类的事情。

除了我正在做的方式之外,还有什么好方法来处理这个问题?我考虑过的其他事情是将 SQL 转储到文件的计划,但我也看到了其中的缺陷(如果说我将 SQL作为“API”data.json发布,那么缺陷是数据不会是最新的)。.json

我目前的方法:

  1. HTML 表单将数据插入 MySQL 数据库。
  2. Frontpage 查询 MySQL 数据库的所有记录。
  3. 使用 PHP 将步骤 2 中的数据转换为 JSON。
  4. 然后将 JSON 与 DataTables 一起显示(在同一页面上)。

我对当前方法的担忧是每次页面加载都会执行完整的 SQL 查询,并且 DataTables 上的动态 jQuery 刷新不会提取新数据,因为这不会执行 SQL 查询。

我对我正在考虑的方法的担忧:

  • 每次点击页面时都加载完整的 SQL
  • jQuery refresh 不会刷新列表,因为没有执行 SQL 查询
  • 其他方法:将 SQL 转储调度到 .json 不会始终提供最新数据
4

3 回答 3

0

实际上,您要完成的工作在数据表的网站上有很好的记录。也许你没有找到链接,所以这里是:

http://datatables.net/development/server-side/

http://www.datatables.net/usage/server-side

http://www.datatables.net/release-datatables/examples/data_sources/server_side.html

我通常做的是修改示例而不是尝试从头开始(我建议您选择 mysqli 示例,而不是其他示例)。这很简单,除非你想加入几个表,这需要更多的调整......

于 2013-07-18T01:35:39.597 回答
0
echo json_decode(array('whaever you want'));

这会发回您可以使用 js 读取的 json 响应

于 2013-06-24T20:00:32.347 回答
0

这对我有用。将 json 标头添加到 PHP 文件的顶部。

header('Content-Type: application/json');

//Database connection
$conn = new PDO ("mysql:host=localhost;dbname=databaseName","Username","Password", array(PDO::ATTR_PERSISTENT => true));

$sql = "SQL STATEMENT";
$results = $conn->query($sql);

//Json Object
$arr = array();

//Loop through results and dump them into the array object
while($obj = $results->fetchAll(PDO::FETCH_ASSOC)){
     $arr[] = $obj;
}

//it is important that you have aaData
//refer to datatables API docs
echo '{"aaData":'.json_encode($arr).'}';

我假设您使用的是 MySQL 连接库。我已修改此示例以使用 PDO MySQL 连接字符串。这个例子是最基本的,你可以建立它。

于 2013-06-24T20:13:59.637 回答