【问题标题】:I want to load a JSON string into a Flexigrid table我想将 JSON 字符串加载到 Flexigrid 表中
【发布时间】:2013-03-10 17:51:15
【问题描述】:

我正在尝试使用 mysql resulset 将表创建为 JSON 字符串。我有 Flexigrid 所需的包和从同一路径中的另一个 php (table.php) 加载数据的功能。

我可以显示 Flexigrid 表格,但没有显示任何数据。当我在浏览器中检查 table.php 时,我得到 JSON 字符串并且所有“看起来”都是正确的。 如果有人可以帮助我了解我缺少什么,我分享我的代码?

table.php

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '123';
$db = 'nwind';
mysql_connect($dbhost,$dbuser,$dbpass) or die ('Error!');   
mysql_select_db($db) or die ('Check the Data Base');    
$query = 'SELECT orderId, customerId, employeeId, orderDate FROM orders';
$resultset = mysql_query ($query);  
if (!$resultset) {
$message  = 'Query error: ' . mysql_error() . '\n';
$message .= 'Search: ' . $query;
die($message);
}   
$json = array();
while ($object = mysql_fetch_object($resultset)) {
$json[] = array(
"Order_ID" => $object->orderId,
"Customer_ID" => $object->customerId,
"Employee_ID" => $object->employeeId,
"Order_Date" => $object->orderDate
);
}
echo json_encode($json);
?>

example.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title> 
<link rel="stylesheet" href="../flexigrid/css/flexigrid.pack.css" type="text/css"/>
<script type="text/javascript" src="../js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="../flexigrid/js/flexigrid.pack.js"></script>
</head>
<body>
<div class="flexigrid">
<table id="flex"></table>
</div>      
<script type="text/javascript">
$("#flex").flexigrid({
url:'table.php',
dataType:'json',
colModel : [
{display: 'Order_ID',
name : 'orderId',
width : 60,
sortable : true,
align: 'center'},
{display: 'Customer_ID',
name : 'customerId',
width : 180,
sortable : true,
align: 'left'},
{display: 'Employee_ID',
name : 'employeeId',
width : 120,
sortable : false,
align: 'left'},
{display: 'Order_Date',
name : 'orderDate',
width : 130,
sortable : true,
align: 'left'}
],
sortname: 'orderId',
sortorder: 'asc',
usepager: true,
title: 'Orders',
useRp: true,
rp: 15,
showTableToggleBtn: true,
width: 700,
height: 200,
resizable: false
});
</script>
</body>
</html>

【问题讨论】:

  • 建议尝试将 JSON 密钥匹配到 colModel name 而不是 display
  • 我试过但没用。
  • [{"orderId":"10248","customerId":"VINET","employeeId":"5","orderDate":"1996-07-04 00:00:00" },{"orderId":"10249","customerId":"TOMSP","employeeId":"6","orderDate":"1996-07-05 00:00:00"},{"orderId": "10250","customerId":"HANAR","employeeId":"4","orderDate":"1996-07-08 00:00:00"},{"orderId":"10251",... . 这就是 JSON 字符串的样子
  • 在浏览器控制台中检查 ajax 请求以查看 i 是否正在生成和完成。 table.php 的路径是否正确?控制台将显示发送和返回的内容(如果有)和状态
  • 是的,在控制台中我得到了 JSON 字符串并且路径似乎正确。这是使用“POST localhost/sdcr_v2/interfaces/table.php”的路径和方法。发送“qtype”和“query”有两个字段,第一个用qtype=customerId指定,另一个为空,这有关系吗?数据已接收,但未创建并显示在表中。

标签: php jquery mysql json flexigrid


【解决方案1】:

只需在 javascript 中检查您的 ColumnModel。它肯定与您返回的数据不匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多