CakePHP与jqGrid

CakePHP与jqGrid,cakephp,jqgrid,Cakephp,Jqgrid,我正在使用CakePHP和jqGrid,但我很难让它们说得很好。我可以经历构建JSON响应的麻烦(我知道,“没那么难”;),但我更愿意简单地从find返回结果的扁平版本(“all”…) 这是我的当前代码(仅选择我想要的字段)。有没有一种快速简便的方法可以很好地为jqGrid格式化 $result = $this->Contact->find('all', array( 'fields' => array('first_name', 'last_n

我正在使用CakePHP和jqGrid,但我很难让它们说得很好。我可以经历构建JSON响应的麻烦(我知道,“没那么难”;),但我更愿意简单地从find返回结果的扁平版本(“all”…)

这是我的当前代码(仅选择我想要的字段)。有没有一种快速简便的方法可以很好地为jqGrid格式化

$result = $this->Contact->find('all', array(
                'fields' => array('first_name', 'last_name', 'company', 'title'),
                'conditions' => array('OR' => $filters),
                'offset' => $skip,
                'limit' => $rows
                ));
提前谢谢

编辑

我能够将结果转换成Jquery想要的数组,但现在我得到了一个空白表(表呈现,但所有单元格都是空的)。这是我的更新代码,有什么想法吗

$result = $this->Contact->find('all', $options);

$data = array();
for ($i = 0; $i < count($result); $i++) {
    $data[$i]['id'] = $result[$i]['Contact']['id'];
    $data[$i]['cell'] = $result[$i]["Contact"];
}

$result = array(
    'rows' => $data,
    'page' => $page,
    'total' => ceil($totalPages / $rows),
    'records' => $totalPages
);

使用CakePHP1.1完成检查。但它可以简单地转换为CakePHP1.2。希望这能有所帮助。

检查cakephp 1.1是否已完成。但它可以简单地转换为CakePHP1.2。希望这有帮助。

一些人会注意到,我有一个单元格关联数组。为了让它正常工作,我做了以下工作:

在我的PHP中,我将数组更改为上一级:

for ($i = 0; $i < count($result); $i++) {
    $data[$i] = $result[$i]["Contact"];
}

正如一些人会注意到的,我有一个单元格的关联数组。为了让它正常工作,我做了以下工作:

在我的PHP中,我将数组更改为上一级:

for ($i = 0; $i < count($result); $i++) {
    $data[$i] = $result[$i]["Contact"];
}

我想您应该像这样格式化JSON数组

查看整个线程以查看解决方案


希望能有帮助

我想您应该像这样格式化JSON数组

查看整个线程以查看解决方案


希望能有帮助

唯一的问题是新API返回了一个jqGrid无法识别的多维数组。@Benny:如果您发布JSON数据(您可以使用Fiddler from或Firebug from查看从服务器发送的数据)然后发布jqGrid的定义,我可以帮助您包含读取数据的
jsonReader
。唯一的问题是新API返回一个jqGrid无法识别的多维数组。@Benny:如果发布JSON数据(您可以使用Fiddler from或Firebug from查看从服务器发送的数据)发布jqGrid的定义,我可以帮助您包括读取数据的
jsonReader
。如果您在
id
列的定义中添加
key:true
,您将不再发送
id
值两次。因此,如果在
id
列的定义中添加
key:true
,则可以删除类似
“id:”2297“,
send before
单元格:[……]
的文本,您将不会再发送两次
id
值。因此,您可以删除类似于
“id”:“2297”的文本,
单元格[…]之前发送。
...
    jsonReader: {
       repeatitems: false
    },
...