2010-09-08 21 views
0

我的問題有點傻,但我不知道該怎麼做。我創建使用標準結構的標準flexigrid:如何用代碼點火器中的另一個控制器的傳入變量創建flexigrid?

//ver lib 

    /* 
    * 0 - display name 
    * 1 - width 
    * 2 - sortable 
    * 3 - align 
    * 4 - searchable (2 -> yes and default, 1 -> yes, 0 -> no.) 
    */ 
    $colModel['users.id'] = array('id',40,TRUE,'center',1); 
    $colModel['users.first_name'] = array('first_name',80,TRUE,'center',0); 
    $colModel['users.last_name'] = array('last_name',180,TRUE,'left',1); 
    $colModel['users.email'] = array('email',120,TRUE,'left',0); 
    $colModel['users.username'] = array('username',130, TRUE,'left',0); 
    $colModel['users.activation_code'] = array('activation_code',80, FALSE, 'right',0); 
    $colModel['users.activated'] = array('activated',80, FALSE, 'right',0); 
    $colModel['lists'] = array('Lists',90, FALSE, 'right',0); 

    /* 
    * Aditional Parameters 
    */ 
    $gridParams = array(
    'width' => 'auto', 
    'height' => 400, 
    'rp' => 15, 
    'rpOptions' => '[10,15,20,25,40]', 
    'pagestat' => 'Displaying: {from} to {to} of {total} items.', 
    'blockOpacity' => 0.5, 
    'title' => 'Hello', 
    'showTableToggleBtn' => true 
    ); 

    /* 
    * 0 - display name 
    * 1 - bclass 
    * 2 - onpress 
    */ 
    $buttons[] = array('Delete','delete','test'); 
    $buttons[] = array('separator'); 
    $buttons[] = array('Select All','add','test'); 
    $buttons[] = array('DeSelect All','delete','test'); 
    $buttons[] = array('separator'); 


    //Build js 
    //View helpers/flexigrid_helper.php for more information about the params on this function 
    $grid_js = build_grid_js('flex1',site_url("admin/users/list_users"),$colModel,'users.first_name','asc',$gridParams,$buttons); 

    $data['js_grid'] = $grid_js; 

    $this->load->view('admin_panel/admin_content', $data); 

現在我的問題是:是否有可能創建第三URI段參數的flexigrid?例如,我想顯示一個列表,該列表由用戶創建並執行,我需要他的ID。我可以輕鬆地在同一個控制器中執行該操作,但我想將它傳遞給不同的控制器,並在那裏創建新的flexigrid表單。所以在'index()'方法我可以有,例如$ get_id變量從不同的控制器傳遞?喜歡這個?

 $grid_js = build_grid_js('flex1',site_url("admin/admin_lists/display_show_list/".$get_id),$colModel,'name','asc',$gridParams,$buttons); 

我希望我解釋得很好。有人可以給我一些幫助嗎?大多讚賞任何提示!

回答

2

有2種方法可以實現這一目標:

  1. 創建助手 而不是使用一個控制器來構建網格結構,你應該創建一個幫助做到這一點,而不是。請參考http://codeigniter.com/user_guide/general/helpers.html

只需將函數包裝在幫助程序中即可。

  • 使用AJAX
  • 在控制器創建函數像這樣:

    //在控制器

    function makeGrid() { 
        $id = $this->uri->segment(3); 
        $grid_js = .....; 
    
        echo json_encode($grid_js); 
    } 
    

    //在查看(Javascript)

    $.ajax({ 
        url:"/path/makeGrid" + id 
        ... 
        success: function(data){ 
         $.flexigrid({... data .... }); 
        } 
    
    +0

    謝謝Yman的回覆。很好的隊友! – Pavel 2010-09-16 07:00:33

    +0

    沒有問題!別客氣 – Yman 2010-09-16 15:06:40

    相關問題