2011-09-01 50 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' 
});