2012-06-25 13 views
0

在agiletoolkit,我有顯示一組的意見,並在視圖中,已設置的外層div有ID =atk4錯誤無法削減的對象與名稱= ......,這不是初始化

1 <div id='<?$_name?>' class='taskrow'> 
    2 <div class=fleft nomargin> 
    3  <?$Story?> 
    4 </div> 
    5 <div class='container'> 
    6  <div id='<?$workspace?>' class='workspace'> 
    .. 
    34 </div> 

在頁面中,我有一個foreach循環,從mysql中檢索數據並將其添加到頁面。同時,它使用id作爲鍵將$ p-> add的返回值存儲到數組中。

 foreach ($st as $row) { 
     if (is_array($row)) { 
      $storyid=$row[0]; 
      $scrumrow[$storyid]=$p->add('View_StoryRow') 
       ->setWorkspace('ws-'.$storyid); 

當執行操作(拖動屏幕上的元素)時,我刷新頁面,get塊將某些更新應用於數據庫。然後,我有以下的代碼更新視圖(這是執行操作的行)

if($_GET['task'] && $_GET['status']) 
    { 
      .. do database updates here .. 
      $js[]=$scrumrow[$ajaxstory]->js()->reload(); 
    //  $js[]=$p->js()->reload(array('member'=>$member, 'sprint'=>$sprint)); 

      $this->js(null,$js)->execute(); 
    } 

如果我註釋掉$ scrumrow [$ ajaxstory]行和使用註釋行刷新整個頁面,但它的工作原理非常緩慢(大約12秒),因爲屏幕上的數據很多,但當試圖刷新視圖時,我得到一個錯誤,如標題'無法剪切名稱... ...它沒有初始化。

enter image description here

的更新會在數據庫中這樣做,如果我手動刷新頁面,它的工作原理和錯誤也出現在地方,我想刷新並沒有給該行的正確名稱的行(如使用螢火蟲的ID所示),但我錯過了什麼?我如何初始化已經在頁面中的對象?

+0

快速問你的if($ _GET [] ...)是否放在你的foreach循環之後?我認爲這是,但只是要確保它是確定的。 – jancha

+0

是 - 它是封裝在函數init(){}中的獨立塊。如果我在上面的$ js []行中更改了註釋的行,它可以工作,但它需要大約12秒,因此我只想刷新行而不是所有行。難道這是關於如何處理atk4分配$ _name在ajax返回的代碼中它不提供相同的數字,因此第一次建立該頁面時存儲的id沒有存在,當它第二次構建它? –

+1

這可能是因爲你失去了一些獲取參數。嘗試打開Inspector並嘗試查看哪個URL用於重新加載,以及它如何與原始內容不同。該錯誤消息意味着您的視圖尚未初始化。嘗試在新窗口中打開URL並刪除cut_object以查看錯誤。 – romaninsh

回答

1

我加

$p->api->memorize('scrumrow',$scrumrow); 

只是如果($ -GET [] ..)塊之前,然後添加

$scrumrow=$p->api->recall('scrumrow'); 

之前,我做在頁面的$ scrumrow的任何人羣。

它更新行,以便回答原始問題 - 當ajax繪製頁面的一部分時,它正在丟失數組,並且不會重建它。

確實會造成一些副作用,例如拖放操作不會重新執行新行,奇怪的是,在ajax行刷新之後通過菜單鏈接單擊任何其他頁面時,我也遇到以下錯誤。

低級別的錯誤:類Model_Table不包含文件中定義的include_once()的

想我會堅持使用刷新整個頁面(因爲有隻刷新行另一個功能問題),所以我需要弄清楚爲什麼需要12秒來執行POST和GET。

+1

「低級錯誤:Class_Table沒有在include_once()中的包含文件中定義」如果您有自己的Model/Table.php,並且它沒有實際的「Model_Table」類,則可能會發生這種情況。順便說一句,你在4.2嗎?如果否,我會建議儘快遷移到那個地方。 – jancha

+0

我注意到羅馬人正在做出很多改變。我已經下載了4.2,但看到了一些註釋,例如需要更改布爾型的數據庫類型以及4.2中不適用的表單佈局。我試圖讓我的應用程序發佈版本,並需要添加功能,所以在這個時候,不想回去,並修改工作代碼。一旦我在4.1上有一個穩定的應用程序,atk4的升級將在稍後進行 –

相關問題