蛋糕php用Ext js通过在网格中显示数据的问题


Cake php with Ext js through display data in grid Problem

我用extjs创建了cakephp网格视图

对于我创建的

1)一个movie_controller控制器文件,我在其中写入

function index() {
        $this->recursive = 0;                                      
        $this->set('movies', $this->Movie->find("all"));
    }

2)秒创建索引。查看/movies/index.ctp文件

 <?php echo  '{"rows":'.$javascript->Object($movies).'}'; ?>

3)然后在js文件中我称之为索引。ctp文件

没有在网格中获取数据。在firebug中调试时,会显示这个数组

{"行":[{"电影":{" id ":"1","date_":"1970-01-01","笔记":"Note13455——","asset_id":"1","maint_picture":","maint_condition1":"可怜","maint_condition2":"新","maint_condition3":"优秀","maint_condition4":"好"}},{"电影":{" id ":"2","date_":"2009-03-20","笔记":"注2","asset_id":"1","maint_picture":空,"maint_condition1":"优秀","maint_condition2":"优秀","maint_condition3":"新","maint_condition4":"穷"}}]}

==>在这个json文件中,我如何删除在开始所有记录中显示的电影数组

<?php echo  '{"rows":'.$javascript->Object($movies['Movie']).'}'; ?>

如果要删除第一个数组,我们必须逐个数组打印在网格中。其做。

<?php
$output='{"rows":[';
$total=$ta=count($movies);
for($i=0;$i<$total;$i++)
{
$t=$i+1;
  if($t==$total)
  {
    $output.=$javascript->Object($movies[$i]['Movie']);
  }
  else
  {
    $output.=$javascript->Object($movies[$i]['Movie']).',';
  }
}
$output.=']}';
echo $output;
 ?>  

你离目标越来越近了。尝试在控制器中使用$movies变量完成所有工作(请记住MVC模式!别弄坏了!

你可以这样做…

// in your controller
$data = null;
$movies = $this->Movie->find('all');
foreach ($movies as $key => $value) {
    foreach ($value['Movie'] as $k => $v {
        $data['rows'][$key][$k] = $v;
    }
}

然后将其转换为json对象。

基本上我认为它没有加载数据因为json是这样的

{"行":[{"电影":{" id ":"1","date_":"1970-01-01","笔记":"Note13455——","asset_id":"1","maint_picture":","maint_condition1":"可怜","maint_condition2":"新","maint_condition3":"优秀","maint_condition4":"好"}},{"电影":{" id ":"2","date_":"2009-03-20","笔记":"注2","asset_id":"1","maint_picture":空,"maint_condition1":"优秀","maint_condition2":"优秀","maint_condition3":"新","maint_condition4":"穷"}}]}

应该是这样的

{"行":[{"id":"1","date_":"1970-01-01","笔记":"Note13455——","asset_id":"1","maint_picture":","maint_condition1":"可怜","maint_condition2":"新","maint_condition3":"优秀","maint_condition4":"好"}, {"id":"2","date_":"2009-03-20","笔记":"注2","asset_id":"1","maint_picture":空,"maint_condition1":"优秀","maint_condition2":"优秀","maint_condition3":"新","maint_condition4":"可怜"}]}

您想要删除"Movies": {..object..}部分,所以它只是一个对象数组,如{id: 1},{id: 2},{id: 3}等。

确保在JsonReader中将行设置为根!!

var reader = new Ext.data.JsonReader({
    root: 'rows'
});