2011-09-01 28 views
0

我用extjs网格视图创建cakephp。用ext js通过在网格中显示数据来蛋糕php问题

对于我创建,

1)一个movie_controller控制器其中i的写入文件

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

    } 

2)第二创建视图/电影/ index.ctp

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

3)然后在js文件中我称这个index.ctp文件为

没有在网格中获取数据。 当在萤火虫调试它显示此数组

{“rows”:[{“Movie”:{“id”:“1”,“date _”:“1970-01-01”,“notes”:“注意13455 - “,”asset_id“:”1“,”maint_picture“:”“,”maint_condition1“:”差“,”maint_condition2“:”新“,”maint_condition3“:”优秀“,”maint_condition4“ }},{ “电影”:{ “ID”: “2”, “日期_”: “2009-03-20”, “注意事项”: “注2”, “ASSET_ID”: “1”, “maint_picture”:空,“maint_condition1”:“优秀”,“maint_condition2”:“优秀”,“maint_condition3”:“新”,“maint_condition4”:“差”}}]}

==>在这json文件我怎么能移除在开始所有记录时显示的Movie数组。

回答

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

如果我在index.ctp文件中写这个<?php echo'{“rows”:'。$ javascript-> Object($ movies ['Movie'])。'}'; (8):Undefined index:Movie [APP \ views \ movies \ index.ctp,line 2] {“rows”:null}表示数组返回空值。请帮忙.. – mayur

0

如果要删除第一个数组从数组中删除我们必须逐个打印数组。 它完成。

<?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; 
?> 
0

你越来越近了。尝试使用控制器中的$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”, “日期_”:“1970年至一九〇一年-01“,”笔记“:”Note13455 - “,”asset_id“:”1“,”maint_picture“:”“,”maint_condition1“:”差“,”maint_condition2“:”新“,”maint_condition3“:” ”, “maint_condition4”: “好”}},{ “电影”:{ “ID”: “2”, “日期_”: “2009-03-20”, “注意事项”: “注2”, “ASSET_ID”: “1”,“maint_picture”:null,“maint_condition1”:“优秀”,“maint_condition2”:“优秀”,“maint_condition3”:“新”,“maint_condition4”:“差”}}]}

it应该看起来像这样

{ “rows”:[{0 {0} {0} {“0”“1”, “date _”:“1970-01-01”, “notes”:“Note13455-”, “asset_id”:“1”, “maint_picture”: “”, “maint_condition1”: “可怜”, “maint_condition2”: “新”, “maint_condition3”: “优秀”, “maint_condition4”: “好” },{ “ID “:”2“, ”date _“:”2009-03-20“, ”notes“:”Note2“, ”asset_id“:”1“, ”maint_picture“:null, ”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' 
});